はじめに
Jupyter LabはJupyter notebookの発展系のようなものでありnotebookと同様に数多くの拡張機能があります。 導入の手順と個人的に気に入っているものをいくつか紹介したいと思います。
下準備
Jupyter のアップデート
まずは手持ちのjupyterをアップデートしましょう。
Upgrading Jupyter Notebookを参考にしながら
Anacondaの場合は
conda update jupyter
pipの場合は
pip install -U jupyter
nodejs
多くのExtensionはnpmパッケージで作成配布されています。 もしnodejsが入っていない場合はインストールしましょう。
Extensions — JupyterLab 0.35.4 documentation
Anacondaの場合は以下のコマンドでインストールできます。
conda install -c conda-forge nodejs
extensionをJupyter labからインストールできるようにする。
Settings -> Advanced Setting Editor -> Extension Manager
でExtension Managerを有効にするかどうかを選択できます。
なおsettingは全てjson形式になっており左画面がデフォルト、右画面はユーザーの設定項目になっており右側が優先されます。
{"enabled": true}
としてCtrl+Sで保存するとExtension Managerが有効になります。
これにより以下のようにextensionの管理が行えるようになります。
extensionはこのExtension Managerか端末からインストールしていきます。 ただExtension Managerから導入できないものもたまにあるのでその場合は端末から導入することとなります。
導入済みのextensionの確認
上記のExtension Managerの他には端末から以下のコマンドを入力しても確認可能です。
jupyter labextension list
extensionの例
@jupyter-widgets/jupyterlab-manager
notebookのwidgetsをLab上で動作するためのextension。 値などをインタラクティブに変更したり、ボタンなどを設置したりもできます。
※端末からインストールする場合は
jupyter labextension install @jupyter-widgets/jupyterlab-manager
ちなみに以下の記事ではParaViewの画像出力と組み合わせてインタラクティブに遊んでみました。
LaTex
個人的にすごくおすすめです。LaTexのリアルタイム編集が可能になります。
※端末からインストールする場合は
jupyter labextension install @jupyterlab/latex
jupyterlab_code_formatter
コードをいい感じに綺麗にしてくれます。カッコの中の改行とかを特に気に入っています。
※端末からインストールする場合は
jupyter labextension install @ryantam626/jupyterlab_code_formatter pip install jupyterlab_code_formatter jupyter serverextension enable --py jupyterlab_code_formatter
google drive
google driveを扱うことができます。 別途GCPから設定が必要で結構大変でした。
※端末からインストールする場合は
jupyter labextension install @jupyterlab/google-drive
notebookのextension
jupyter notbookの機能も使用可能です。
例)jupytext
内容を同期した.pyファイルと.mdファイルを自動出力してくれます。相互に変更可能です。
conda install -c conda-forge jupytext jupyter notebook --generate-config jupconfig=".jupyter/jupyter_notebook_config.py" echo 'c.NotebookApp.contents_manager_class = "jupytext.TextFileContentsManager"' >> ${jupconfig} echo 'c.ContentsManager.default_jupytext_formats = "ipynb,py,md"' >> ${jupconfig}
jupconfigは変わる可能性あり
最後に
いいのを見つけたら追記していく予定です。