VSCodeでpythonノートブックを動かそうとしたらタイトルの現象が発生しました。 その時の対応について記録します。
環境
事象
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を利用しています。
おわりに
環境構築に失敗するとその後の作業が全く進められないため、早期の解決が望ましいです。
そのような状況に陥った場合に利用しているツールの背後で動いているものが何か、原因はどこにあるか、を判断できるように知識をつけていきたいです。