🐍

JupyterLabの始め方(Windows/Pipenv)

2021/01/11に公開

JupyterLabの始め方(Windows/Pipenv)

2020/1/15 追記: JupyterLab 3.0系+Language Server Protocolを利用可能な環境構築の記事 を作成しました。ただし、こちらは現時点では jupyterlab-git が未対応です。便利な拡張機能ですので対応するまでは本記事の環境を使ってもいいかもしれません。

2021/1/22追記: jupyterlab-gitのプレリリース版が 公開 されていました。JupyterLab 3系に対応とのこと。

Pythonの仮想環境管理は長らくAnacondaのお世話になってきましたが、つい先日リポジトリの利用が一部有料になったそうで、調べてみると私の所属する企業の規模では商用利用するためには有料版を利用する必要がありました。いい機会だったのでPipenvを使ってJupyterLab環境を作り直したのでその作業メモを残します。

作業を行った時点では、JupyterLabの最新バージョンは 3.0.1 でしたが、Anaconda環境でも利用していたJupyterLab-LSPがうまくインストール&動作できなかったので、試行錯誤のあと 2.2.9 をバージョン指定でインストールしています。

動作確認できた環境の情報

Windows環境

  • Windows 10 Pro/Home 1909 64bit
  • Python 3.9.1
  • pip 20.3.3
  • pipenv 2020.11.15
  • Node.js 14.15.3

JupyterLab起動環境

  • Python 3.8.7
  • JupyterLab 2.2.9(要バージョン指定)
  • Jupyter-lsp 0.9.3
  • Jupyterlab-lsp 2.2.1
  • python-language-server 0.36.2

用途ごとカーネル

  • Python(任意)
  • ipykernel 5.4.2
  • jedi 0.17.2(要バージョン指定)
  • その他使いたいパッケージ(任意)

Node.jsのインストール

ダウンロード | Node.js

最新版を入れとけばOKです。

デフォルトのブラウザをChromeまたはFirefoxに

フォルダ構成

この説明では以下のようなフォルダ構成に、JupyterLabと拡張機能をインストールするための仮想環境と、用途ごとに異なるパッケージをインストールしてJupyterカーネルとして利用するための仮想環境を作成します。

エクスプローラーや mkdir コマンドで下記のように jupyter とそのサブフォルダである lab,
kernels および、projects を作成してください。

jupyter
   ├──lab             (←ここにJupyterLabの仮想環境を作る/JupyterLabの起動はここから)
   │   
   ├──kernels
   │   ├─kernel_1     (←ここにJupyterLabのカーネルとして利用する仮想環境を作る)
   │   ├─kernel_2     (同上)
   │    …
   ├──projects
   │   ├─project_1     (←ここにJupyterLabの分析プロジェクト-ノートブックやデータを保管する)
   │   ├─project_2     (同上)
   │    …
   ├──launch_jupyterlab.bat  

launch_jupyter.bat はJupyterLabを起動するためのバッチファイルで、ショートカットをデスクトップに置いて使っています。内容は以下の通りです。

launch_jupyter.bat
cd .\lab
py -m pipenv run jupyter lab --notebook-dir=".."

バッチファイルが起動されると、lab に作成する仮想環境を使ってJupyterLabを jupyter から立ち上げます。

JupyterLabを起動する環境の作成

JupyterLabのインストール

\jupyter\lab に移動してPythonとJupyterLabをインストールします。
ここでは、後述の拡張機能を利用するために最新版ではなくPythonはバージョン 3.8、JupyterLabは 2.2.9 を指定します。

PS > cd jupyter\lab
PS jupyter\lab> py -m pipenv --python 3.8
PS jupyter\lab> py -m pipenv install jupyterlab==2.2.9

Language Serverの機能を利用するためのパッケージのインストール

JupyterLabには基本機能の他にさまざまな拡張機能をインストールすることができます。ここではJupyterLabでLanguage Server Protocolを利用できるようになる拡張機能をインストールします。※始めにNode.jsをインストールしたのはこの拡張機能を使用するためです。
krassowski/jupyterlab-lsp: Language Server Protocol integration for JupyterLab

PythonのLangeuage Servrer機能によって、コードの入力中に Tab キーでヒントの表示や入力補完ができるようになるため便利です。

まずは、Pipenvで jupyter-lsp パッケージをインストールします。

PS jupyter\lab> py -m pipenv install jupyter-lsp

次に jupyter labextension install コマンドで jupyterlab-lsp 拡張機能をインストールします。

PS jupyter\lab> py -m pipenv run jupyter labextension install @krassowski/jupyterlab-lsp

さらに jupyter lab build コマンドで拡張機能をビルドします。

PS jupyter\lab> py -m pipenv run jupyter lab build

最後に python-language-server パッケージをインストールします。
[all] まで入力すること)

PS jupyter\lab> py -m pipenv install python-language-server[all]

一度JupyterLabを起動します。

PS jupyter\lab> py -m pipenv run jupyter lab

JupyterLabが起動したら拡張機能を Enable にして有効化します。

ここまで完了したら、JupyterLabを終了します。
JupyterLabの終了は、File→Logoutをクリックしてタブを閉じたのち、シェル側で Ctrl+C を行ってサーバをシャットダウンしてください。

カーネルとして利用する仮想環境の作成

用途ごとのカーネルを作成するためのフォルダに移動して仮想環境を作成します。ここで ipykernel は必須のパッケージです。
(2020年12月27日現在)特に何もしなくても ipykernel と同時にインストールされる jedi というパッケージが最新だと、前述の jupyterlab-lsp 拡張機能が上手く動作しないようです。動作確認できているバージョンを jedi==0.17.2 と明示的に指定してインストールします。
あとのパッケージははお好みでOKです。

PS > cd jupyter\kernels\kernel_1
PS jupyter\kernels\kernel_1> py -m pipenv --python x.x
PS jupyter\kernels\kernel_1> py -m pipenv install ipykernel jedi==0.17.2 numpy pandas ...

次に作成した仮想環境をJupyterのカーネルとして利用できるように ipython kernel install コマンドを実行します。

PS jupyter\kernels\kernel_1> py -m pipenv run ipython kernel install --user --name=kernel_name --display-name=display_name

コマンドのオプションについては下記の通りです。

  • --user → 現在Windowsにログインしているユーザのみが利用できるようにするオプション
  • --name → システムが認識するためのカーネルの名前(任意の名前を指定)
  • --display-name → ユーザのために表示するためのカーネルの名前(任意の名前を指定)

このあと \jupyter\lab に移動してJupyterLabを起動すればカーネルとして選択できるようになっています。

インストール済みのカーネルをシェルから確認する場合は、このフォルダから、

PS jupyter\lab> py -m pipenv run jupyter kernelspec list

で一覧表示されます。

また、カーネルのアンインストールはこのフォルダから、

PS jupyter\lab> py -m pipenv run jupyter kernelspec uninstall kernel_name

と実行します。

2021/5/6修正: 誤ったコマンドを記載していました。❌kernel uninstallkernelspec uninstall

Discussion