🌯
ryeで作成したPythonカーネルにVS CodeのJupyterで接続する
はじめに
rye で Python 環境を作成して VS Code の Jupyter で接続する際、同一ワークスペースに .venv
がある場合は問題なくカーネルを選択できたのですが、 異なるワークスペースからカーネルの選択ができませんでした。poetry+pyenv ではこのようなことがなかっただけに困りました。
本記事では、対処方法を紹介します。
筆者の実行環境
- Windows 11
- Visual Studio Code 1.84.2
- 使用する拡張機能: Python, Jupyter
- 表示言語は English
- rye 0.15.2
- PowerShell 5.1
手順
結論を言ってしまうと、Jupyter サーバーを起動し、そこに接続する方法で解決しました。
Python 環境作成と同一ワークスペースでのカーネル接続
-
rye で Python 環境を作成し、 VS Code を開く
# 環境初期化 rye init python-env cd python-env # bashやzsh等は New-Item を touch に読み替える New-Item test.ipynb # VS Code の Jupyter で使用するパッケージを追加 rye add ipykernel rye sync # VS Code を開く code .
-
Python インタープリターの選択
-
src/python_env/__init__.py
を開く - コマンドパレットを開く(Ctrl+P or F1)
- 「Python: Select Interpreter」を選択
- 作成した Python を入力
.venv\Scripts\python.exe
-
-
カーネルに接続して動作確認
- test.ipynb を開く
- コマンドパレットを開く(Ctrl+P or F1)
- 「Notebook: Select Notebook Kernel」
- Select Another Kernel... > Python Environments...
-
.venv\Scripts\python.exe
を一覧から選択 - セルに
print('hello')
を入力して実行できることを確認
異なるワークスペースでのカーネル接続
-
ワークスペースを作成し、VS Code を開く
mkdir work cd work # bashやzsh等は New-Item を touch に読み替える New-Item test.py New-Item test.ipynb code .
-
Python インタープリターの選択(上記と同様)
-
src/python_env/__init__.py
を開く - コマンドパレットを開く(Ctrl+P or F1)
- 「Python: Select Interpreter」を選択
- 作成した Python を入力 例)
C:\path\to\python-env\.venv\Scripts\python.exe
-
-
カーネルに接続しようとするができないことを確認
- test.ipynb を開く
- コマンドパレットを開く(Ctrl+P or F1)
- 「Notebook: Select Notebook Kernel」
- Select Another Kernel... > Python Environments...
-
C:\path\to\python-env\.venv\Scripts\python.exe
が一覧になく、カーネルの選択ができない
-
Jupyter のインストールとサーバー起動
# jupyter インストール cd C:\path\to\python-env rye add notebook rye sync # jupyter サーバーの起動 # mytoken は任意の文字列とする。指定しない場合は長~いトークン文字列が生成される .venv\Scripts\python.exe -m jupyter notebook --no-browser --NotebookApp.allow_origin='*' --NotebookApp.ip='0.0.0.0' --NotebookApp.token=mytoken
-
今度こそカーネルに接続
- test.ipynb を開く
- コマンドパレットを開く(Ctrl+P or F1)
- 「Notebook: Select Notebook Kernel」
- Select Another Kernel... > Existing Jupyter Server... > Enter the URL of the running Jupyter Server...
-
http://127.0.0.1:8888/?token=mytoken
を入力(mytoken は指定したトークンか生成されたトークン) - 表示名を入力(local とか main-env とかわかりやすい命名をしておく)
- セルに
print('hello')
を入力して実行できることを確認
試したがうまくいかなかったこと
拡張機能の再インストール
rye とは関係なく、カーネルが選択できない不具合について、Python, Jupyter を再インストールすると解決するというのを見たので試しましたが、解決しませんでした。
pip をインストール
rye で作成した Python 環境には pip がないため、これが悪さをしているのではと考えましたが、解決しませんでした。
cd C:\path\to\python-env
rye add pip
rye sync
参考
最後に
- 本記事では rye で作成した Python カーネルに、同一ワークスペースから接続する方法、異なるワークスペースから接続する際の問題の対処方法を説明しました。
- 複数ワークスペース共通の Python カーネルを作成する際などに役立つかと思います。
- 参考になった方は♡ボタンを押していただけると幸いです。
- また、より良い解決方法があれば教えてください!
Discussion