前回、「Jupyter notebookのUIが変更になっていました」という記事を書きました。
notebookがバージョン7になってからRetroLabというテーマを採用した影響のようで、今まであえてJupyter notebookを好んで使っていた私のような方は戸惑ったかと思います 笑
そんな私はというとRetroLabに慣れるくらいであれば、もうこれを機にJupyterLabに切り替えることを心に決めました。
JupyterLabで拡張機能をインストールする方法
Jupyter notebookのおすすめ拡張機能5選をまとめてみたという記事でJupyter notebookをカスタマイズしていたのでJupyterLabにも同じ様な機能があればそのまま使うし、なければ拡張機能を追加しようと思います。
JupyterLabでの拡張機能のインストール方法は簡単になりました。
ほとんどの拡張機能はpipやcondaもしくはJupyterLabのUI(Extension Manager)から拡張機能名を選択しインストールするだけになっています。
Installing Extensions
Most JupyterLab extensions can be installed using Python pip or conda packages. These packages may also include a server-side component necessary for the extension to function.
引用: https://jupyterlab.readthedocs.io/en/stable/user/extensions.html
ちなみにMigrate from classical Jupyter notebookというページにてJupyter notebookで使っていた拡張機能がJupyterLabだとどのような名称に該当するかまとめられています。
Jupyter Notebookで使っていた拡張機能を抜き出すとJupyterLabでは下記になるようです。
Feature | Extension (if applicable) | Minimum JupyterLab Version |
---|---|---|
Collapsible Headings | Built in feature since 3.1 (PR) | 1+ |
Table of Contents (2) | Built-in feature | 3+ |
Variable Inspector | lckr-jupyterlab-variableinspector extension | 1+ |
ExecuteTime | jupyterlab-execute-time extension | 2+ |
table_beautifier | 該当なし | 該当なし |
なんと下記2つはJupyterLabに組み込まれているようです。
・Collapsible Headings
・Table of Contents (2)
table_beautifierはなさそうですが、正直あまり使わなかったので無くてもとりあえずはOK。
Variable InspectorとExecuteTimeはよく使うのでlckr-jupyterlab-variableinspectorとjupyterlab-execute-timeをインストールすれば良さそうでしょうか。
Jupyter notebookで使っていた拡張機能をJupyterLabで試してみる
Collapsible Headings
markdownの##などのタイトルタグ毎にセルの情報を折り畳んでくれる機能になります。
分析しているときに記述が長くなってしまうとき、セクション毎に分割してまとめておくと後で見直したり、他の人にシェアするときに見やすくなるのでおすすめです。
JupyterLab3.1からデフォルト機能になり組み込み済みのようです。
Table of Contents (2)
markdownで記載したヘッダーを一覧表示できる機能です。リンクをクリックすると目的の位置に飛べるので長いノートブックを作成してしまった場合は便利。
lckr-jupyterlab-variableinspector → frz-jupyterlab-variableinspector
jupyterlab4系を利用の場合、23年9月18日現在lckr-jupyterlab-variableinspectorは未対応のようです。
(私はjupyterlab-4.0.6を使っていました)
lckr-jupyterlab-variableinspectorをインストールしようとすると依存関係だからかjupyterlab-4.0.6がアンインストールされ、jupyterlab-3.6.5がインストールされてしまいました。(そもそもExtension Managerにも出現しないのでpipでインストールを試してみました。)
pip install lckr-jupyterlab-variableinspector
> Installing collected packages: jupyterlab, lckr-jupyterlab-variableinspector Attempting uninstall: jupyterlab Found existing installation: jupyterlab 4.0.6 Uninstalling jupyterlab-4.0.6: Successfully uninstalled jupyterlab-4.0.6 ・・・省略・・・ Successfully installed jupyterlab-3.6.5 lckr-jupyterlab-variableinspector-3.0.9
せっかくなのでjupyterlab4を使いたいので、代わりにjupyterlab4に対応していると思われるfrz-jupyterlab-variableinspectorをインストールしたところ問題なく利用できました。
(なぜ対応しているのかというとJupyterLabのExtension Managerに出てくるからです 笑 おそらく対応していないと出てこないのではないかと思います。lckr-jupyterlab-variableinspectorが出てこなかったので、、)
検索結果(frz-jupyterlab-variableinspector)とインストール済み(feiranzhang-jupyterlab-variableinspector)の拡張機能名が異なっていますが同じものなはずです。
SEARCH RESULTSでインストールしたい拡張機能の「install」リンクを押下すると自動的にインストールされます。(JupyterLabを再起動したり新規カーネルをスタートしないと正常動作しないかも?)
variable inspectorを使いたい場合はセル上で右クリック→Open Variable Inspector→新規タブで開くのでタブを右側に持っていくなど好みに合わせて配置で利用可能です。
jupyterlab-execute-time extension
最後はjupyterlab-execute-time extensionです。これは実行時間をセルの下部に表示してくれる機能です。Jupyter notebookの時から重宝している機能になります。
私は自作関数の計測などで使っています。毎回マジックコマンド(%%timeなど)で処理時間を計測するのが面倒な方はぜひインストールして見てください。
各セルの実行した日時も記録されるのでどのセルを先に実行したかなども分かりやすくなります。
インストール方法ですが、Extension Managerから「jupyterlab-execute-time」で検索し、installリンクを押下すればOKです。(下記画像はインストール済みなので検索結果に出現しないのかも?)
下記のように実行日時と時間がセルの下部に出てくればインストール完了です。JupyterLabやカーネルの再起動が場合によっては必要かも知れません。
JupyterLab 4について
JupyterLab4って何なのということで調べてみました。
下記が参考になりました。
まとめると動作が早くなったり、エディタ・UI・拡張機能マネージャーが改善したり、100以上のバグに対応したりと良さそうな内容ばかりでした。
また、JupyterLab4の新規機能はJupyterLab3.6にも適用されたとのことです。そのためJupyterLab3.6をお使いの方はマイナーアップデートだけでも十分だよという方もいらっしゃるかも知れません。
In addition, a few features in JupyterLab 4 have also been backported to JupyterLab 3.6, but if you’re upgrading from 3.5 or earlier, they will also be new to you:
引用: https://blog.jupyter.org/jupyterlab-4-0-is-here-388d05e03442
まとめ
これでJupyter notebookからJupyterLabに移行する準備は整いました 笑
使い始めてみると意外に悪くないです。慣れればむしろ使いやすいかも。
Jupyter notebookの方はRetroLabを使う代わりにJupyterLabに移行してみてはいかがでしょうか。