VSCode + Jupyter でFailed to start the Kernelが発生した

VSCodepythonノートブックを動かそうとしたらタイトルの現象が発生しました。 その時の対応について記録します。

環境

  • OS:windows11 22H2
  • python:3.11.9
  • VSCode:1.88.1
  • Jupyter Extension:v2024.3.1

事象

venvで新しく作成した環境にipynbをインストールし、VSCodeから pythonノートブックのセルを実行すると以下のようなエラーが発生しました。

Failed to start the Kernel.
Bad file descriptor ( C:Users¥runneradmin¥AppData¥Local¥Temp...
View Jupyter log for further details.

対応

エラーでGoogle検索を行ったところ以前のバージョンで同様の事象が発生していました。 その時はpyzmqのバージョンを下げることで改善したそうです。

以前構築した環境では正常に動作していたためその時のpyzmqバージョンを確認したところバージョンは25.2.1でした。

依存ライブラリとして自動でインストールされたpyzmqは26.0だったため、一度アンインストールを行なって再度バージョンを指定しインストールを行いました。

pyzmqのアンインストール

pip uninstall pyzmq

pyzmqのバージョンを指定して再インストール

pip install pyzmq==25.2.1

補足

JupyterとPyZMQの関係性について確認しました。

pyzmqはZeroMQのPythonバインディングで、JupyterはZeroMQを使用して通信を行っています。 Jupyterではカーネルとフロントエンド間のメッセージ送受信を行うためにpyzmqを利用しています。

おわりに

環境構築に失敗するとその後の作業が全く進められないため、早期の解決が望ましいです。

そのような状況に陥った場合に利用しているツールの背後で動いているものが何か、原因はどこにあるか、を判断できるように知識をつけていきたいです。