JupyterLabの始め方(Windows/Pipenv)
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のインストール
最新版を入れとけば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を起動するためのバッチファイルで、ショートカットをデスクトップに置いて使っています。内容は以下の通りです。
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 uninstall
⭕kernelspec uninstall
Discussion