こちらは、以前(2021.02.06)に別サービスで展開した内容を Qiita に移行したものです。
はじめに
本来はこちらの記事は「ドキュメントを読めばいい」で済むが、インストールする過程でエラーが発生したのと、一応のそれへの対処のメモとして残しておく。
開発環境
Windows 10
Python 3.7.8
jupyterlab 3.0.7
jupyterlab-kite 2.0.2
jupyterlab-server 2.1.3
インストール方法
- Jupyter Labのインストール
pip install jupyterlab
- Kiteのインストール
インストーラーを使用してインストール。 - NodeJSのインストール
インストーラーを使用してインストール。
テーマパッケージのビルドにwebpackなどを使用していたり、TypeScriptで書かれているケースもあり、npmビルドが必要になるため。
因みに、僕は通常のインストーラーでバージョン管理ができなくなるのが嫌いなので、nvm-windowsでインストールしている。 - JupyterLab KiteとJupyterエクステンションのインストール
こちらJupyterLabのバージョンに応じて、バージョン指定があることもあるので、インストールドキュメントも参照すること。
pip install "jupyterlab-kite>=2.0.2" jupyter labextension install "@kiteco/jupyterlab-kite"
ドキュメント的には、pip install "jupyterlab-kite>=2.0.2"
のみですべてインストールされるように書かれているが、個人環境だとエクステンションまでのインストールはしてくれなかったので、追加で拡張機能のインストールコマンドを実行した。
実行
通常通りにJupyter Labを実行する。
jupyter lab
トラブルシュート
CP949 encoding error
次の様なエラーメッセージが発生する。
File "f:\develop\.venv\lib\site-packages\jupyterlab_server\config.py", line 37, in get_federated_extensions
pkgdata = json.load(fid)
File "C:\Users\takanori\AppData\Local\Programs\Python\Python37\lib\json\__init__.py", line 293, in load
return loads(fp.read(),
UnicodeDecodeError: 'cp932' codec can't decode byte 0x82 in position 523: illegal multibyte sequence
原因
jupyter-server
モジュールのJSONリードするためのファイルの開き方が、JSONがマルチバイトの文字を読めないにも関わらず生の状態で開かれてしまっている。
解決方法
方法1
ソースを書き換える。
<Lib Root>\site-packages\jupyterlab_server\config.py
を、以下の様に書き換える。
def get_federated_extensions(labextensions_path):
~~~
with open(ext_path, encoding="utf-8") as fid:
pkgdata = json.load(fid)
~~~
方法2
こちらの問題、本家のレポジトリにIssue/PRを出して、Approve/Merge済み。
jupyterlab-server==2.1.5
で適応されているので、jupyterlab-serverをアップデートする。
pip install -u jupyter-server==2.1.5
最後に
とりあえず、そこまで問題なく導入ができた。
コンプリート機能も結構いい感じに補完してくれるKiteさんなので、これからも付き合っていきたいところ。