エラー内容
Poetry環境を作成し、VSCodeでカーネルを選択して.ipynbのセルを実行しようとしたところ、下記のエラーになった。
エラー文
'Python 3.12.3' でセルを実行するには、 ipykernel パッケージが必要です。
次のコマンドを実行して、'ipykernel' を Python 環境にインストールします。
コマンド: '/usr/local/bin/python3 -m pip install ipykernel -U --user --force-reinstall'
解消法
ググってもよくわからなかったのでChatGPTにきいてみると、仮想環境用のカーネルを登録すればよいとのことだったので、実施してみると無事一発で解消した。
VSCodeのJupyter Notebook拡張機能が、Poetryで作成した仮想環境のipykernelを認識していないことで発生するエラーらしい。
1. Poetry環境で必要なパッケージをインストール
まず、Poetryでipykernelをインストールする必要があります。ターミナルを開いて、プロジェクトディレクトリに移動し、以下のコマンドを実行します。
poetry add ipykernel
2. 仮想環境のカーネルを登録
次に、Poetryの仮想環境をJupyterに認識させるため、仮想環境のPython実行ファイルを使ってカーネルを登録します。
poetry run python -m ipykernel install --user --name=your_env_name --display-name "Python (your_env_name)"
ここで、your_env_nameは仮想環境の名前です。好きな名前を付けてください。
3. VSCodeでカーネルを選択
VSCodeを再起動し、.ipynbファイルを再度開きます。次に、ノートブックの右上にあるカーネル選択メニュー(「Python 3.12.3」などと書かれている部分)をクリックし、先ほど登録したカーネルを選択します。
4. 必要な拡張機能の確認
VSCodeに以下の拡張機能がインストールされていることを確認します。
Jupyter
Python
これらがインストールされていない場合、VSCodeの拡張機能マネージャからインストールしてください。
5. 再試行
これで、.ipynbファイルのセルを実行して、エラーが解消されているか確認します。
結果
上記を試した結果、「Jupyter Kernel...」というのが選べるようになり、そこに先程作成したカーネルが表示されるので、それを選択すればよい。
ただ、最初に示した.venv/bin/python
のカーネルを選択したままでも通るようになった。
まとめ
エラーを投げるとだいたい1発で解消に導いてくれるので、ChatGPT先生はすごい。
同様のエラーがおきた方の参考になれば嬉しいです。