JupyterLabの魅力の1つが「拡張機能(Extension)」を追加して組み合わせながら、自分好みの開発環境をつくれることです(自分専用のIDEがつくれる感覚です!)。

先日このサイトでもご紹介したJupyterLab Desktop」では当初まだサポートされていませんでしたが、v3.2.1-2のバージョン(2021.11.02リリース)からビルド済み(prebuilt)の拡張機能が待望のサポートされました。

Support JupyterLab Extensions
github.com/jupyterlab より

今回のサポートはビルド済みの拡張機能だけであり「Extension Manager」もまだ有効になっていませんが、日頃のプログラミングに便利なツールはビルド済みで提供されているものも多くあります。そこで、今回はこのビルド済みの拡張機能をインストールする方法をご紹介します。インストールはpipまたはcondaで簡単にできます。

本記事の目次
本記事では先日リリースされた「JupyterLab Desktop」に拡張機能を追加する方法を説明しています。従来からの「JupyterLab」全般に関する内容ではありませんのでご留意ください。
本記事はWindows11で実行を確認していますが、macOSでも操作手順は同様です。

JupyterLab Desktopでサポートされた拡張機能について

まず、従来からのJupyterLabの拡張機能のうち、JupyterLab Desktopのv3.2.1-2でサポートされた範囲について確認します。

拡張機能の種類

JupyterLabの拡張機能には以下の2種類があります。

  • ソース(source)で提供されている拡張機能(Node.jsが必要)
  • ビルド済み(prebuilt)で提供されている拡張機能(Node.jsは不要)

ソースで提供されている場合は、ソースをビルドしてインストールします。そのため、ビルドに用いるNode.jsというJavaScriptの実行環境をあらかじめインストールしておく必要があります。

一方、ビルド済みが提供されている場合は、ビルド済みのものをインストールするだけなので、Node.jsは必要ありません。このビルド済みの拡張機能はJupyterLab 3.0からサポート され、pipcondaで簡単にインストールできるようになりました。

JupyterLab Desktopのv3.2.1-2からサポートされたのはビルド済み(prebuilt)の方です。

インストール方法

JupyterLabの拡張機能をインストールする方法は、大きく分けて以下の2通りがあります。

  • Extension Managerまたはコマンドでソースからインストール
  • pipまたはcondaでビルド済みをインストール

通常はExtension Managerを使うと便利なのですが、JupyterLab DesktopのExtension Managerは現時点ではまだ利用できません将来的には有効になるかもしれません )。

今回はサポートされたのがビルド済みの方なので、以下ではpipまたはcondaを用いてインストールを行います。

JupyterLab Desktopの拡張機能のインストール手順

「JupyterLab Desktop」に拡張機能をインストールするには、以下の手順で行います。

  1. JupyterLab Desktopのバージョン確認
  2. コードセルからpipまたはcondaを用いてインストールを実行
  3. JupyterLab Desktopを再起動

今回は例として「jupyterlab-quickopen 」という拡張機能をインストールしてみます。この拡張機能を追加すると、フォルダーにノートブックファイルがたくさんあってもファイル名の一部を入力するだけですぐに開くことができるようになります。

1. JupyterLab Desktop のバージョン確認

拡張機能がサポートされたのはv3.2.1-2からなので、もしもそれ以前のバージョンがインストールされている場合は、一度アンインストールしてから最新のバージョンをインストールします。

バージョンは[Help]メニューから[About JupyterLab]を選択すると確認できます。

About JupyterLab

以下のようなダイアログにバージョンが表示されます(この画像ではバージョンは「3.2.4-3」)。

JupyterLab Version

2. コードセルからpipまたはcondaを用いてインストールを実行

jupyterlab-quickopenは「pip(PyPI)」の方で提供されています。インストールするには、以下のコマンドをコードセルで実行します。

%pip install jupyterlab-quickopen

# アップグレードする場合はオプションを付けます
%pip install --upgrade jupyterlab-quickopen

まず、以下のようにLauncherタグにあるPython3のアイコンをクリックして、新規のノートブックを作成します。

jupyterlab new notebook

以下のようにコードセルにコマンドを入力したらShift + Enterで実行します。

pip install jupyterlab-quickopen

以下のように「Successfully installed 〜」と表示されたらインストール成功です。

pip installed quickopen

インストールに使用したノートブック(Untitled.ipynb)は削除して大丈夫です(後でインストール履歴がわかるように保存しておいても構いません)。

3. JupyterLab Desktopを再起動

インストールした拡張機能を有効にするために、JupyterLab Desktopを再起動します。すると以下のようにjupyterlab-quickopenが有効になり、左側にのタブが追加されたのが確認できます。

JupyterLab Quickopen

ここではまだフォルダが空なので何も表示されませんが、大量のノートブックを作成しても簡単に開けるようになります。

インストールした拡張機能の一覧表示

インストールした拡張機能を一覧で確認するには、以下のコマンドをコードセルで実行します。ここで、jupyterコマンドをコードセルから実行するために!を先頭に付けています(マジックコマンド %sxを用いても可能です)。

!jupyter labextension list

# マジックコマンドの%sxを用いても可能
%sx jupyter labextension list

実行すると先ほどインストールした「jupyterlab-quickopen」が追加されているのを確認できます。ここで、一緒に表示されている「jupyter-widgets」は最初からインストールされています。

jupyter labextension list

エラーになる場合

Error executing Jupyter command ‘labextension’: [WinError 5] アクセスが拒否されました。」というエラーが表示される場合は、以下のようにJupyterLabを起動するときに「管理者として実行」を選択してください。

jupyterlab admin launch

拡張機能の設定例

拡張機能の中には、JupyterLab Desktopの設定用の画面(Settingsタブ)で設定変更できるものもあります。ここでは、上記でインストールしたjupyterlab-quickopenを例にみてみましょう。

まず、以下のように[Settings]メニューから[Advanced Settings Editor]を選択して設定用の画面を表示します。

jupyterlab setting menu

以下のようにSettingsタブが表示され、それぞれの拡張機能の設定を行えます。ここでは、タブの中の一覧から「Quick Open」を選択して、先ほどインストールしたjupyter-quickopenの設定を行なっています。

quickopen settings

上の図では、右側の「User Preferences」の部分に入力して保存すると、左側の「System Defaults」のデフォルトの設定内容が上書きされます。

よく用いられる拡張機能の例

JupyterLabは多様な拡張機能(Extension)が公開されていますが、その中でもよく利用されていて、かつJupyterLab Desktopで今回サポートされたビルド済みが提供されているものを以下の表にまとめてみました。

よく用いられる拡張機能の例(ビルド済みがあるもの)
拡張機能名 機能の概要 pip
(PyPI)
conda
(conda-forge)
jupyterlab-git Gitを用いたバージョン管理のGUI操作
jupytext ノートブックを*.mdや*.pyに保存
jupyterlab_code_formatter コード整形(フォーマット)
ipyleaflet Leaflet.jsを用いた地図データの表示
jupyterlab-kite Kiteによるコード自動補完

jupyter-widgets はプレインストールされています。

この表の拡張機能は、以下に示すpipまたはcondaを用いたコマンドでインストールできます。なお、ここではコードセルでマジックコマンド を用いて実行するため先頭に%を付けています。

jupyterlab-git

Gitを用いたバージョン管理がVisual Stuio CodeなどのようにGUIで操作できるようになります。

# pipの場合
%pip install jupyterlab-git

#condaの場合
%conda install -c conda-forge jupyterlab-git
jupytext

ノートブックファイル(*.ipynb)をマークダウン(*.md)とPythonファイル(*.py)に保存できるようになります。

ノートブックファイルはJSON形式のため、Gitでの差分確認やテキストエディタでの編集がしづらいという問題がありますが、mdとpyの形式のファイルがあるとこの問題が解消できます。

# pipの場合
%pip install jupytext

#condaの場合
%conda install -c conda-forge jupytext

使い方はノートブックとペアリングするのが簡単です。ノートブックを開いている状態でコマンドパレットCtrl + Shift + C で開きます)に「pair」と入力すると、以下のように候補が表示されるので「Pair Notebook with percent Script」を選択します。

すると、そのノートブックを保存したときに一緒にpyファイルも保存されるようになります。マークダウン(mdファイル)を保存したい場合は「Pair Notebook with Markdown」を選択します。

jupyterlab_code_formatter

コードを整形(フォーマット)できるようになります。

# pipの場合
%pip install jupyterlab_code_formatter

#condaの場合
%conda install -c conda-forge jupyterlab_code_formatter

4つのフォーマッター(Black , YAPF , Autopep8 , Isort )をサポートしており、いずれかをインストールしておく必要があります。デフォルトではisortとBlackを用いるので、以下のようにpipまたはcondaで2つともインストールしておきます。

# pipの場合
%pip install isort black

#condaの場合
%conda install -c conda-forge isort black

すぐに利用するには、コードセルを右クリックして表示されるメニューから以下のように「Format cell」を選択するとコードを整形(フォーマット)してくれます。

format cell

ショートカットに登録するには、以下のように[Settings]メニューから[Advanced Settings Editor]を選択してSettingsタブを表示して、[Keyboard Shortcuts]の[User Preferences]の部分に設定内容を書き込み保存します。設定する内容は公式ドキュメント を参照してください。

code formatter shortcut

ipyleaflet

Leaflet.js をJupyterLabで利用できるようになります。Leaflet.jsはWeb地図で広く利用されているオープンソースのJavascriptライブラリです。国土地理院の地理院地図 でも利用されています。

# pipの場合
%pip install ipyleaflet

#condaの場合
%conda install -c conda-forge ipyleaflet

以下のように地図を簡単に表示できるので、位置情報を地図上にプロットするなどの可視化がノートブックでできるようになります。

jupyter leaflet

jupyterlab-kite

AIによるコード補完ツールの「Kite 」がノートブックで利用できるようになります。

利用するにはまず Kiteエンジンをインストール してから、以下のコマンドでjupyterlab-kiteをインストールします。

%pip install jupyterlab-kite

拡張機能のアンインストール方法

pipまたはcondaでインストールした拡張機能は、それぞれインストールに用いた方のpip uninstallまたはconda removeでアンインストールできます。

例えば、上記の「よく用いられる拡張機能の例」で紹介したjupyterlab-gitをアンインストールするには、以下のコマンドをJupyterLab Desktopのコードセルで実行します。

# pipの場合
%pip uninstall jupyterlab-git

#condaの場合
%conda remove jupyterlab-git

拡張機能の探し方

JupytarLabの拡張機能はほとんどがGitHubで公開されているので、「jupyterlab-extensionのトピックス(以下のリンク参照)」でどのような拡張機能があるか把握できます。

https://github.com/topics/jupyterlab-extension

また、JupyterLabのおすすめの機能全般をまとめた「Awesome JupyterLab(以下のリンク参照)」をみるとどんな拡張機能がよく利用されているかがわかります。

Awesome Jupyter

最後に

本記事の執筆時点では、JupyterLab Desktopでサポートされているのはまだビルド済み(prebuilt)の拡張機能だけです。Extension Managerもまだ有効になっていません。それでも、Git操作やコード整形などの便利なツールはビルド済みで提供されているので、日頃のプログラミングが捗るようになります。

将来的にはJupyterLab DesktopでもExtension Managerがサポートされるかもしれませんので、その折には本サイトでもまたご紹介したいと思います。JupyterLab Desktopはまだこれからどんどん便利になっていきそうなので、是非本記事をご参考にいろんな使い方を試してみてください。