最新のJupyter Notebookとnbextensionsの組み合わせがうまく動かない
現在、1週間前の2020/12/23にJupyter Notebook
がバージョン6.1.6
にアップデートされたのですが、それに伴い拡張機能nbextensions
(0.5.1
)が使えなくなっているようです。さらに、単純にJupyter Notebook
のバージョンを6.1.5
に落としても、nbextensions
は使えるようになりますが、オートコンプリート(自動補完)の拡張機能Hinterland
が使えません。これの私の場合の解決策を残しておきます。
環境
備考 | ||
---|---|---|
OS | Windows10 | |
conda | 4.9.2 | Anaconda Promptでconda -V
|
Python | 3.9.1 |
問題の再現
Anaconda Promptで次のよう新しい環境nbex_test
を作って、jupyter
とnbextensions
をインストールしてみます。
(base) $ conda create -n nbex_test
(base) $ conda activate nbex_test
(nbex_test) $ conda install jupyter
(nbex_test) $ conda install -c conda-forge jupyter_contrib_nbextensions
この状態で、スタートメニューのC:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)
にjupyter notebook (nbex_test)
のショートカットが作られます。しかしこのショートカットからjupyter notebook
を立ち上げてみると、下図のようにNbextensions
のタブが現れません。
解決策
Jupyter Notebookのバージョンを6.1.5
に下げるとうまくいきました。Anaconda Promptで下のように、バージョンを指定してインストールし直すことで、Jupyter Notebookのバージョンを6.1.5
に下げられます。
(nbex_test) $ conda install notebook==6.1.5
無事、下の図のようにnbextensions
のタブが現れました。これでオートコンプリート以外の拡張機能が使えるようになりました。
オートコンプリートが使えない
しかし、これだけだとオートコンプリートの拡張機能だけ使えません。nbextensions
のタブからHinterland
をオンにすれば、下の図のようにimp
まで入力した時点でimport
とサジェストしてくれます。Python
にもとからある構文だけでなく、後からインストールしているモジュールに合わせてオートコンプリート機能が働いてくれます。が、これが使えません。
解決策
Jupyter
についてくるオートコンプリートのPython
モジュールjedi
のバージョンを下げてるとうまくいきました。現在インストールされていたjedi
のバージョンが0.18.0
だったので、それを0.17.2
に下げました。
(nbex_test ) $ conda install jedi==0.17.2
感想
バージョンを落とせば使えるようになるだろうことは解っていましたが、どのモジュールをどのバージョンに落とせばいいのかわからないので困りますね...。というかAnacondaって依存関係をよしなに解決してくれるのがウリなのでは?なんにせよこれ以上これに苦しむ人が増えないことを願います。(私は半日食われました)