0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JupyterLabでオートコンプリート(Kite)を導入する

Posted at

こちらは、以前(2021.02.06)に別サービスで展開した内容を Qiita に移行したものです。

はじめに

本来はこちらの記事は「ドキュメントを読めばいい」で済むが、インストールする過程でエラーが発生したのと、一応のそれへの対処のメモとして残しておく。

開発環境

Windows 10
Python 3.7.8
jupyterlab 3.0.7
jupyterlab-kite 2.0.2
jupyterlab-server 2.1.3

インストール方法

  1. Jupyter Labのインストール
    pip install jupyterlab
    
  2. Kiteのインストール
    インストーラーを使用してインストール。
  3. NodeJSのインストール
    インストーラーを使用してインストール。
    テーマパッケージのビルドにwebpackなどを使用していたり、TypeScriptで書かれているケースもあり、npmビルドが必要になるため。
    因みに、僕は通常のインストーラーでバージョン管理ができなくなるのが嫌いなので、nvm-windowsでインストールしている。
  4. JupyterLab KiteとJupyterエクステンションのインストール
    pip install "jupyterlab-kite>=2.0.2"
    jupyter labextension install "@kiteco/jupyterlab-kite"
    
    こちらJupyterLabのバージョンに応じて、バージョン指定があることもあるので、インストールドキュメントも参照すること。

ドキュメント的には、pip install "jupyterlab-kite>=2.0.2"のみですべてインストールされるように書かれているが、個人環境だとエクステンションまでのインストールはしてくれなかったので、追加で拡張機能のインストールコマンドを実行した。

実行

通常通りにJupyter Labを実行する。

jupyter lab

we5v3rkfm7zcd4oa1vunkpwovtx6.png

トラブルシュート

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さんなので、これからも付き合っていきたいところ。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?