yiskw note

機械学習やプログラミングについて気まぐれで書きます

JupyterLabの環境構築+カスタマイズをする


概要

今更感がすごいですが,年末年始の休みを利用して,Jupyter NotebookからJupyter Labに移行してみました.
その際の手順をこちらにメモとして残しておきます.

Jupyter Labをインストールする

今回はpipを用いてインストールします.
公式にて,conda, mamba,pipenv, dockerでの方法も記載されていますので,よければご参照ください.

pip install jupyterlab

またJupyterLabは,node.jsが必要なようです.
自分はanyenvを使用しているため,
以下のコマンドでインストールしました.
その他のインストール方法については,こちらを参考にしてください.

anyenv install nodenv
nodenv install <NODEJS_VERSION>

JupyterLabを実行する

以下のコマンドを実行することで,JupyterLabを立ち上げることが可能です.

jupyter lab

terminalに表示されるULR(デフォルトではlocalhost:8888)にアクセスすることで,以下の画面が表示されます.

f:id:yiskw713:20211231191348p:plain:w800

基本的な設定を行う

JupyterLabの設定は,Settingsタブから行います.
基本的なものは,Settingsタブから選択するだけで設定することができます.
こちらにないより詳細な設定に関しては,VSCodeのようにjsonファイルを変更します.
自分は以下の設定を実施しました.

  • Theme ... JupyterLab Dark
  • Autosave Documents
  • Show Active File in File Browser
  • Console Run Keystroke ... Shift+Enter
  • Text Editor Indentation ... Spaces: 4
  • Auto Close Brackets
  • Text Editor Key Map ... default ※こちらは.pyファイルを開いた時のキーマップの設定で,notebookを開いた時のキーマップの設定ではないようです.
  • Text Editor Theme ... jupyter
  • Terminal Theme ... Dark
  • Enable Extension Manager

拡張機能を追加する

JupyterLabには便利な拡張機能が数多く提供されております.
その中から今回自分が追加したものを紹介していきます.

jupyterlab-vim

vimmerには必須の拡張機能です.
こちらを導入することで,セル内でもvimキーバインドで操作することが可能です.

以下のコマンドでインストールができます.

jupyter labextension install jupyterlab_vim

jupyterlab-variableInspector

f:id:yiskw713:20211231203055p:plain:w800

変数の中身を表示することができる拡張機能です.
print関数を使用する必要がなくなり,非常に便利です.
右クリックから,Open Variable Inspectorで簡単に開くことができます.

インストールはpipを使用します

pip install lckr-jupyterlab-variableinspector

Tabnine

AIによる入力補完が行えるTabnineの拡張機能です.
以下の画像のように,色々な補完を行ってくれます.
※ 自分はEnterキーではなくTabキーで補完候補の決定を行いたいのですが,現時点ではまだ対応してないようです.
(How to disable Enter key autocomplete for Jupyter notebooks in Visual Studio Code · Issue #2578 · microsoft/vscode-jupyter)

f:id:yiskw713:20211231204312p:plain:h300 f:id:yiskw713:20211231204144p:plain:h300

インストールはpipで行います.

pip install jupyterlab_tabnine

ipywidgets

JupyterLab上で,以下のようなインタラクティブウィジェットを表示することができる拡張機能です.

  • sliders
  • progress bars
  • text boxes
  • toggle buttons and checkboxes
  • display areas

以下の

pip install ipywidgets

jupyterlab_code_formatter

JupyterLab上で Black, YAPF, Autopep8, Isortなどのformatterを実行することができます.

自分はblackとisortを使用しているので,以下を実行してインストールします.

pip install black
pip install isort
pip install jupyterlab_code_formatter

続いてコードの保存時にformattingを実行するように設定します.
Settingsタブ -> Advanced Settings Editor -> Jupyterlab Code Formatterから,User Preferencesに以下を追加します.

{
    "formatOnSave": true,
}

ショートカットの設定などの他の設定に関しては,こちらをご覧ください.

jupyterlab-lsp

コードの検査や,definitionへの移動,参照先のハイライトや,引数や返り値の表示など,さまざまな機能を提供してくれる拡張機能です.
その他の機能に関しては,こちらを参照してください.

f:id:yiskw713:20220101104437p:plain:w400 f:id:yiskw713:20220101104245p:plain:w400

インストールは以下を実行します.

pip install jupyterlab-lsp
pip install 'python-lsp-server[all]'

まとめ

JupyterLabの環境構築+拡張機能を用いたカスタマイズを行いました.
まだまだ使い始めてまもないですが,Jupyter Notebookよりも便利な部分が多く,使いやすいです.
こちらの記事がJupyterLabの設定の参考になれば幸いです.

参考