はじめに
VS Codeのipynbファイル(Jupyter Notebook)でコード補完が出てくるのが妙に遅いという問題が発生しました。入力してから補完候補が出てくるまでに数秒かかっていました。
しかも新しく作成した環境(venv)でのみ遅く、以前に作成した環境で試すと速いです。
結論から言うとこの遅延の原因はipykernelのバージョンでした。ipykernelは、Jupyter Notebook用のライブラリです。
バージョンを下げることで解決しました。
症状
以下のような挙動が見られました。
- VS Codeで補完が出てくるのに数秒かかる
- .ipynb(Notebook)ファイルでのみ遅い
- .py ファイルでは補完が即座に出る
- 大きなライブラリは入っていない(numpyやtorchなどを入れていない)
- 新しく作成した環境でのみ発生
- 以前に作成した環境では補完が速い
- → つまり、原因は環境(=ライブラリのバージョン差)
- Notebook関連のライブラリ(jupyter、ipykernelなど)のみインストール
- これが原因
一般的に「大量のライブラリが入っていると補完が遅くなる」ことはありますが、
今回はそれが原因ではなく、Jupyter Notebook関連のライブラリ側に原因がありました。
対応法
ipykernelのバージョンを下げたら解決しました。
pip install ipykernel==6.30.1
この例では6.30.1を指定していますが、
必ずしもこのバージョンである必要はないです。
以前の環境で補完が速かった場合は、
その環境のipykernelのバージョンに合わせてインストールすれば問題ないです。
おわりに
同じように「.pyでは速いのにNotebookだけ補完が遅い」という人は、
ipykernelのバージョンを下げてみてください。