Help us understand the problem. What is going on with this article?

JupyterLabのおすすめ拡張機能8選

はじめに

Jupyter notebookの進化形、Jupyter Lab。見た目が綺麗で使いやすいです。
今回は2019年12月現在で使用できる便利な拡張機能をご紹介します。

(余談:半年ほどこれらの拡張機能を使ってみましたが、個人的に得に便利だと思ったのは
・3.コード自動整形
・4.Vim風キーバインド
・5.TensorBoard管理
の3つでした。時間がなければこの3つだけでも十分かも知れません。)

※JupyterLab,Node.jsが既にインストールされていることが前提です。以下バージョンで動作を確認しています。
JupyterLab : v0.35.4
Node.js : v11.13.0

これからJupyterLab,Node.jsを導入する人は以下を実行してください。

# Jupyterlabの導入(anacondaを入れている人は既に入っている可能性があります。)
$ pip install jupyterlab 

# Node.jsの導入(バージョンは適宜修正してください)
$ curl -sL https://deb.nodesource.com/setup_11.x | bash -
$ apt-get install -y --no-install-recommends nodejs

1.Variable Inspector

変数名や型、内容を常に横に表示しておけるようになります。
いちいちprint文を打つ手間が省けます。
image.png

導入手順

以下コマンドを実行

$ jupyter labextension install @lckr/jupyterlab_variableinspector

2.Table of Contents

Markdown記法で書いた見出しが一覧で表示され、目的の見出しにワンクリックで飛べるようになります。
Apr-11-2019 18-01-18.gif

導入手順

以下コマンドを実行

$ 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を開き、
image.png
image.png

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を一覧化できます。
tensorboard.gif
image.png

導入手順

以下コマンドを実行

$ 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,ブランチ切り替えができるようになります。
image.png

導入手順

以下コマンドを実行

$ 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.各種リソース監視

※本拡張機能のみjupyterlab v1.2.0で動作確認を行っています。
gpu_util.gif
GPU計算量使用率、GPUメモリ使用率、CPU計算量使用率、メモリ使用率などを監視するタブを出せます。
拡張機能を入れると以下のようにサイドバーに項目が追加され、見たいタブを選ぶとワークスペースにタブが追加されます。
image.png

導入手順

$ pip install jupyterlab-nvdashboard
$ jupyter labextension install jupyterlab-nvdashboard

以上を実行すれば拡張機能が入るはずですが、環境によってはjupyterlabの再起動が必要かも知れません。

動作未確認だけど役立ちそうな拡張

私の環境ではうまく動かなかったり試していなかったりで動作未確認ですが、今後対応される可能性もあるので一応紹介しておきます。

jupyterlab-flake8
flake8のコードチェック機能が使えるようになる

jupyterlab_voyager
csvをきれいなグラフで可視化してくれる

・可視化関連の拡張機能がいくつか紹介されています。
https://medium.com/@subpath/jupyter-lab-extensions-for-data-scientist-e0d97d529fc1

dask-labextension
Pandasライクな使い方で分散処理ができるdask dataframeのメモリ使用状況やタスク進捗状況をモニタリングできる

jupyterlab-lsp
こちらの記事でも取り上げられている、jupyterlabにvscodeライクな入力補完機能を入れてくれる拡張です。

最後に

そのままでも結構便利に使えるJupyterLabですが、拡張機能を入れることで自分好みにカスタマイズできます。
気になる拡張があったらぜひ入れてみてください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした