JupyterLabの魅力の1つが「拡張機能(Extension)」を追加して組み合わせながら、自分好みの開発環境をつくれることです(自分専用のIDEがつくれる感覚です!)。
先日このサイトでもご紹介した「JupyterLab Desktop」では当初まだサポートされていませんでしたが、v3.2.1-2のバージョン(2021.11.02リリース)からビルド済み(prebuilt)の拡張機能が待望のサポートされました。
今回のサポートはビルド済みの拡張機能だけであり「Extension Manager」もまだ有効になっていませんが、日頃のプログラミングに便利なツールはビルド済みで提供されているものも多くあります。そこで、今回はこのビルド済みの拡張機能をインストールする方法をご紹介します。インストールはpipまたはcondaで簡単にできます。
本記事の目次
- JupyterLab Desktopでサポートされた拡張機能について
- JupyterLab Desktopの拡張機能のインストール方法
- インストールした拡張機能の一覧表示
- 拡張機能の設定例
- よく用いられる拡張機能の例
- 拡張機能のアンインストール方法
- 拡張機能の探し方
- 最後に
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からサポート され、pipやcondaで簡単にインストールできるようになりました。
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」に拡張機能をインストールするには、以下の手順で行います。
- JupyterLab Desktopのバージョン確認
- コードセルからpipまたはcondaを用いてインストールを実行
- JupyterLab Desktopを再起動
今回は例として「jupyterlab-quickopen 」という拡張機能をインストールしてみます。この拡張機能を追加すると、フォルダーにノートブックファイルがたくさんあってもファイル名の一部を入力するだけですぐに開くことができるようになります。
1. JupyterLab Desktop のバージョン確認
拡張機能がサポートされたのはv3.2.1-2からなので、もしもそれ以前のバージョンがインストールされている場合は、一度アンインストールしてから最新のバージョンをインストールします。
バージョンは[Help]メニューから[About JupyterLab]を選択すると確認できます。
以下のようなダイアログにバージョンが表示されます(この画像ではバージョンは「3.2.4-3」)。
2. コードセルからpipまたはcondaを用いてインストールを実行
jupyterlab-quickopenは「pip(PyPI)」の方で提供されています。インストールするには、以下のコマンドをコードセルで実行します。
%pip install jupyterlab-quickopen
# アップグレードする場合はオプションを付けます
%pip install --upgrade jupyterlab-quickopen
まず、以下のようにLauncherタグにあるPython3のアイコンをクリックして、新規のノートブックを作成します。
以下のようにコードセルにコマンドを入力したらShift + Enterで実行します。
以下のように「Successfully installed 〜」と表示されたらインストール成功です。
インストールに使用したノートブック(Untitled.ipynb)は削除して大丈夫です(後でインストール履歴がわかるように保存しておいても構いません)。
3. JupyterLab Desktopを再起動
インストールした拡張機能を有効にするために、JupyterLab Desktopを再起動します。すると以下のようにjupyterlab-quickopenが有効になり、左側にのタブが追加されたのが確認できます。
ここではまだフォルダが空なので何も表示されませんが、大量のノートブックを作成しても簡単に開けるようになります。
インストールした拡張機能の一覧表示
インストールした拡張機能を一覧で確認するには、以下のコマンドをコードセルで実行します。ここで、jupyterコマンドをコードセルから実行するために!
を先頭に付けています(マジックコマンド の%sx
を用いても可能です)。
!jupyter labextension list
# マジックコマンドの%sxを用いても可能
%sx jupyter labextension list
実行すると先ほどインストールした「jupyterlab-quickopen」が追加されているのを確認できます。ここで、一緒に表示されている「jupyter-widgets」は最初からインストールされています。
エラーになる場合
「Error executing Jupyter command ‘labextension’: [WinError 5] アクセスが拒否されました。」というエラーが表示される場合は、以下のようにJupyterLabを起動するときに「管理者として実行」を選択してください。
拡張機能の設定例
拡張機能の中には、JupyterLab Desktopの設定用の画面(Settingsタブ)で設定変更できるものもあります。ここでは、上記でインストールしたjupyterlab-quickopenを例にみてみましょう。
まず、以下のように[Settings]メニューから[Advanced Settings Editor]を選択して設定用の画面を表示します。
以下のようにSettingsタブが表示され、それぞれの拡張機能の設定を行えます。ここでは、タブの中の一覧から「Quick Open」を選択して、先ほどインストールしたjupyter-quickopenの設定を行なっています。
上の図では、右側の「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」を選択するとコードを整形(フォーマット)してくれます。
ショートカットに登録するには、以下のように[Settings]メニューから[Advanced Settings Editor]を選択してSettingsタブを表示して、[Keyboard Shortcuts]の[User Preferences]の部分に設定内容を書き込み保存します。設定する内容は公式ドキュメント を参照してください。
ipyleaflet
Leaflet.js をJupyterLabで利用できるようになります。Leaflet.jsはWeb地図で広く利用されているオープンソースのJavascriptライブラリです。国土地理院の地理院地図 でも利用されています。
# pipの場合
%pip install ipyleaflet
#condaの場合
%conda install -c conda-forge ipyleaflet
以下のように地図を簡単に表示できるので、位置情報を地図上にプロットするなどの可視化がノートブックでできるようになります。
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(以下のリンク参照)」をみるとどんな拡張機能がよく利用されているかがわかります。
最後に
本記事の執筆時点では、JupyterLab Desktopでサポートされているのはまだビルド済み(prebuilt)の拡張機能だけです。Extension Managerもまだ有効になっていません。それでも、Git操作やコード整形などの便利なツールはビルド済みで提供されているので、日頃のプログラミングが捗るようになります。
将来的にはJupyterLab DesktopでもExtension Managerがサポートされるかもしれませんので、その折には本サイトでもまたご紹介したいと思います。JupyterLab Desktopはまだこれからどんどん便利になっていきそうなので、是非本記事をご参考にいろんな使い方を試してみてください。