Python

Jupyter Labの導入

これまで、Pythonなどのコードと実行結果、そして式や図などを1つのドキュメントで管理できるJupyter Notebookが多く利用されていますが、Jupyter Notebookの後継(?)としてJupyter Labが公開されています。

基本的にはJupyter Notebookと同じような機能を備えていますが、タブ機能の追加や、編集操作の改善など、Jupyter Notebookよりも進化しています。

Jupyter Labの導入方法

Jupyter Labの導入方法は、ドキュメントのInstallationページで説明してありますが、基本的にはjupyterlabのパッケージをインストールするだけの簡単な操作で完了します。
動作環境もシビアではないので、今のところWindowsでもMacでも問題なく動作しています。

rem Anacondaを使う場合
> conda install jupyterlab

rem pipを使う場合
> pip install jupyterlab

これでJupyter Labの導入は完了です。簡単ですね。

2019/03/12追記

Anacondaではなく純粋なPythonを利用している場合、pip経由でJupyter Labをインストール可能ですが、依存パッケージのtornadoのバージョンが6.0以上になるとJupyter Lab上でコードが実行出来ない場合があります。

この場合は、Jupyter Labをインストールする前に、pip install tornado==5.1.1として、正しく動作するバージョンのtornadoを導入してください。(Jupyter Labをインストールした後なら、tornadoを削除した後、再度インストールしてください)

2019/04/13追記

2019/04/13時点でtornadoの問題は解消されているようです。そのため、通常通りpip install jupyterlabだけで、Jupyter Labが利用できるようになります。

なお、現時点でのパッケージバージョンは、jupyterlab 0.35.4、tornado 6.0.2になります。

Jupyter Labのドキュメントでは、コミュニティを中心としたconda-forgeからパッケージを取得するような手順になっています。(conda install -c conda-forge jupyterlab

しかし、私の環境ではconda-forgeから取得すると、いくつかの依存パッケージがダウングレードされるようなので、ここではデフォルトのチャンネルからjupyterlabを取得しています。なお、2019/1/2時点で、conda-forgeとデフォルトのチャンネルから取得できるjupyterlabのバージョンは以下のようになります。

  • jupyterlab 0.35.4(conda-forge)
  • jupyterlab 0.35.3(デフォルト)

 

Jupyter Labの起動

Jupyter Labは以下のコマンドで起動できます。

> jupyter lab

これでサーバが起動し、Jupyter Labのページがブラウザに表示されます。もし、自動でブラウザが起動しない場合は http://localhost:8888/lab に手動でアクセスしてください。
なお、既にポート番号8888が利用されている場合は、8889~というように自動でポート番号が変更されるため、実際にJupyter Labが利用するポート番号でアクセスするようにしてください。

Jupyter Labを普通に起動すると、コンソールはJupyter Labを終了するまで利用できなくなります。Jupyter Lab起動中もコンソールを利用したい場合は、以下のようにJupyter Labをバックグラウンドで起動してください。

# Mac/Linux
$ jupyter lab &

# Windows
> start /b jupyter lab

 

Jupyter Lab起動用のショートカット作成(Windows)

Jupyter Labを頻繁に利用する場合、「Anacondaのプロンプトを開いて、conda activateで仮想環境を切り替え、jupyter labで起動…」という手順を毎回行うのは少し面倒です。
Windowsのショートカットに以下のコマンドを登録しておくと、簡単にJupyter Labを起動できるようになります。(少しコマンドが長くなりますが、全て1行で入力します)

C:\Users\Kurozumi\Anaconda3\python.exe C:\Users\Kurozumi\Anaconda3\cwp.py C:\Users\Kurozumi\Anaconda3 C:\Users\Kurozumi\Anaconda3\envs\keras\python.exe C:\Users\Kurozumi\Anaconda3\envs\keras\Scripts\jupyter-lab-script.py "W:\JupyterLab"

上のコマンドは、Anacondaのパスが C:\Users\Kurozumi\Anaconda3 、利用する仮想環境名はkerasで実際のパスはC:\Users\Kurozumi\Anaconda3\envs\keras、Jupyter Labで利用したいフォルダは W:\JupyterLab の想定です。環境に合わせて読み替えてください。

 

 

Jupyter Labの終了方法

Jupyter Labを終了するには、ブラウザのJupyter Labのメニューから File> Quit を選択します。確認ダイアログが表示されるので、Quitを選択するとJupyter Labが終了します。

Jupyter Labのトラブルシューティング

Jupyter Labを使っていく中で遭遇したトラブルと、その対応を載せておきます。

Jupyter Lab上でコードが実行出来ない

上の注意点にも記載していますが、2019/3/12の時点では、依存パッケージtornadoのバージョンが6.0以上になると、Jupyter Lab上でコードが実行出来なくなります

Jupyter Labをインストールする前に、pip install tornado==5.1.1として正しく動作するバージョンのtornadoを先にインストールすれば解決します。もし、Jupyter Labをインストールした後であれば、pip uninstall tornadoでtornadoを削除して、Ver5.1.1のtornadoを再インストールしてください。

2019/04/13時点では、この問題は解消しているようです。

Jupyter Labで空白のページが表示される

Jupyter Labを起動すると自動でブラウザが開きますが、ある日を境に、ブラウザでは真っ白なページしか表示されない…という事象が発生しました。(それまでは普通に使えていた)

Favicon(ブラウザ上に表示されるアイコン)やページのタイトルは表示されていたので、Consoleを確認したところ「Refused to execute script ~ because its MIME type (‘text/plain’) is not executable」というエラーが発生していました。

JupyterLabで空白ページが表示される

この内容についてはJupyter LabのIssuesにも載っていて、PCのレジストリを修正すれば動作するようになります。

レジストリエディタを起動(ファイル名を指定して実行でregeditと入力して実行)して、HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jsを開きます。このとき、Content Typetext/plainなどになっていると、先ほどのエラーが発生します。

レジストリの修正前

Content Typeをダブルクリックして、値をapplication/javascriptに変更してOKボタンをクリックします。

レジストリの値を変更

これで、.jsのContent Typeがapplication/javascriptになりました。

Jupyter Labを再起動して、Ctrl+F5でキャッシュを更新すると正しくJupyter Labのページが表示されるようになると思います。

レジストリの修正後