はじめに
Jupyter notebookの進化形、Jupyter Lab。見た目が綺麗で使いやすいです。
今回は2020年10月現在で使用できる便利な拡張機能をご紹介します。
(余談:半年ほどこれらの拡張機能を使ってみましたが、個人的に得に便利だと思ったのは
・3.コード自動整形
・4.Vim風キーバインド
・5.TensorBoard管理
の3つでした。時間がなければこの3つだけでも十分かも知れません。)
※JupyterLab,Node.jsが既にインストールされていることが前提です。私は以下のバージョンを使っていますが、拡張機能によっては最新版のjupyterlabに対応していないものもあり、きちんと動作するかは自環境で試してみてください。
JupyterLab : v2.2.8
Node.js : v13.12.0
これからJupyterLab,Node.jsを導入する人は以下を実行してください。
# Jupyterlabの導入(anacondaを入れている人は既に入っている可能性があります。)
$ pip install jupyterlab
# Node.jsの導入(バージョンは適宜修正してください)
$ brew install node
1.Variable Inspector
変数名や型、内容を常に横に表示しておけるようになります。
いちいちprint文を打つ手間が省けます。
導入手順
以下コマンドを実行
$ jupyter labextension install @lckr/jupyterlab_variableinspector
2.Table of Contents
Markdown記法で書いた見出しが一覧で表示され、目的の見出しにワンクリックで飛べるようになります。
導入手順
以下コマンドを実行
$ jupyter labextension install @jupyterlab/toc
3.コード自動整形
Pythonの自動整形ツールであるBlack,YAPF,Autopep8を使用してコード整形を行えるようにする拡張です。
ショートカットを登録すれば任意のキーを押すことで整形させられるようになります。
導入手順
1.使用したい自動整形ツールをインストール
pip install (black or yapf or autopep8)
2.拡張機能の導入、有効化
pip install jupyterlab_code_formatter
jupyter labextension install @ryantam626/jupyterlab_code_formatter
jupyter serverextension enable --py jupyterlab_code_formatter
3.ショートカットキーの登録
settings→Advanced Settings Editor→Keyboard Shortcutsを開き、
User Overridesに以下を記入。"Ctrl K","Ctrl M"を変更することで任意のショートカットを作成できる。
{"jupyterlab_code_formatter:black":{
"command": "jupyterlab_code_formatter:black",
"keys": [
"Ctrl K",
"Ctrl M"
],
"selector": ".jp-Notebook.jp-mod-editMode"}
}
導入時にエラーが出た場合は公式に対処法が書いてあります。
4.Vim風キーバインド
vimライクなカーソル移動やコマンドが打てるようになります。
導入手順
以下コマンドを実行
$ jupyter labextension install jupyterlab_vim
5.TensorBoard管理
JupyterLabのファイルディレクトリからTensorBoardが起動できたり、起動中のTensorBoardを一覧化できます。
導入手順
以下コマンドを実行
$ pip install tensorflow-gpu #tensorflow(-gpu)がv1.3以上でないと動作しない
$ pip install tensorboard
$ pip install jupyter-tensorboard
$ jupyter labextension install jupyterlab_tensorboard
$ jupyter serverextension enable --py jupyterlab_tensorboard
6.git連携
JupyterLabのGUI上からcommit,push,pull,ブランチ切り替え,変更箇所の比較などができるようになります。
導入手順
以下コマンドを実行
$ jupyter labextension install @jupyterlab/git
$ pip install jupyterlab-git
$ jupyter serverextension enable --py jupyterlab_git
7.ipywidgets使用
導入手順
以下コマンドを実行
$ pip install ipywidgets
$ jupyter labextension install @jupyter-widgets/jupyterlab-manager
$ jupyter nbextension enable --py --sys-prefix widgetsnbextension
8.各種リソース監視
GPU計算量使用率、GPUメモリ使用率、CPU計算量使用率、メモリ使用率などを監視するタブを出せます。
拡張機能を入れると以下のようにサイドバーに項目が追加され、見たいタブを選ぶとワークスペースにタブが追加されます。
導入手順
$ pip install jupyterlab-nvdashboard
$ jupyter labextension install jupyterlab-nvdashboard
以上を実行すれば拡張機能が入るはずですが、環境によってはjupyterlabの再起動が必要かも知れません。
9.jupyterlab-lsp(定義ジャンプ/文法チェック/リファクタリング)
関数定義へのジャンプ、文法チェック、リファクタリングだけでなくオートコンプリートも可能になります。
※(私の環境ではこの拡張を入れてからjupyterLabが重くなったため、現在は使用を中止しています。動作速度が低下したら、この拡張をOFFにすれば直るかも知れません。)
導入方法は公式を参照ください。
動作未確認だけど役立ちそうな拡張
私の環境ではうまく動かなかったり試していなかったりで動作未確認ですが、今後対応される可能性もあるので一応紹介しておきます。
・debugger
デバッグ実行できるようになる
公式がcondaを推奨しており、condaが入っていない自環境でインストールを試みたところ、拡張機能自体は入れられたのですが依存パッケージであるxeus-pythonが入らずインストールを断念しました。
・elyra
notebook同士でパイプラインを作れたり、バッチ化できたり、snippetsを作れたりする。
・neptune.ai
notebook上での実験管理ができる。詳しくは公式参照。
・jupyterlab-flake8
flake8のコードチェック機能が使えるようになる
・jupyterlab_voyager
csvをきれいなグラフで可視化してくれる
→一年以上更新が無く、最新版のJupyterlabに対応していません。
・dask-labextension
Pandasライクな使い方で分散処理ができるdask dataframeのメモリ使用状況やタスク進捗状況をモニタリングできる
・Jupyterlabの拡張機能を42個紹介している海外記事
https://awesomeopensource.com/projects/jupyterlab-extension
最後に
そのままでも結構便利に使えるJupyterLabですが、拡張機能を入れることで自分好みにカスタマイズできます。
気になる拡張があったらぜひ入れてみてください。