環境構築
Code - OSS(VScodeのオープンソースビルド)をArch公式レポジトリから入手する。
# pacman -S code
Pythonは、インストール済。
$ python --version
Python 3.13.1
Pythonの仮想環境をつくり、有効化。必要モジュールをpipでインストール。
$ python -m venv .venv/
$ . ./.venv/bin/activate
$ pip install jupyter
Kernelは、自動で作成される。
$ jupyter kernelspec list
Available kernels:
python3 ~/python/.venv/share/jupyter/kernels/python3
Code - OSSで拡張機能をインストールする。公式レポジトリから入手したバイナリでは、MarketplaceはOpen VSX Registryに繋がるようになっている。Jupyter v2024.11.0と、Python v2024.23.0-devをインストールした。
Code - OSSのPython拡張機能設定で、~/.venv/bin/python
をデフォルトのインタープリタに設定した。
行き詰まった箇所
「Select Kernel」というボタンを押しても、延々と読込中の画面が続き、Kernelの候補が表示されない。
試してダメだったこと
- リログイン、再起動、再インストール諸々
→変化なし - インタープリタをpythonからpython3ないしpython3.13に変更
→変化なし - notebookをアンインストール
→変化なし - Jupyter拡張機能、Python拡張機能について、それぞれバージョンを変えてみる、Microsoft公式のMarketplaceから入手したいろんなバージョンのVSIXでも試してみる
→変化はあったものの結局Kernelが検出されず、解決の糸口見えず - 諦めてブラウザでJupyter Notebook/Labを使う
→補完が使いにくい。候補からの入力内容の決定は、Enterキーかクリック以外ではできないようだ。私は、補完はカーソルキー + Tab派です。
解決方法
半日近く苦戦しましたが、あっさり解決しました。
開発者機能でログを見てみる
「Help > Toggle Developer Tools」から、開発者機能を有効にできます。Google ChromeでHTMLを見るときに使うあれみたいな感じです。
右上のほうを見てみると、何やらエラーが出ているようです。
なんかすごい怒られてます。--enable-proposed-apiというコマンドラインフラグをつけろとのことで、その通りコマンドラインフラグを付けてみました。変化はありませんでした。
StackOverflowで解決
検索をかけてみたところ、StackOverflowに、同じ症状で質問をしている人がいました。(ディストロも、Archと系統が同じManjaroのようです)
ここに書かれているように、argv.json
に"enable-proposed-api": ["ms-toolsai.jupyter"]
を追記したところ、Kernelが選択できるようになりました。
教訓
ログを読む
最終的な動作環境
参考に、最終的な動作環境を書いておきます。拡張機能以外は、Arch Linux公式リポジトリから入手したバイナリです。拡張機能は、Open VSX Registryから入手したものです。
- Arch Linux(Kernelは、Linux)
- KDE Plasma 6(wayland)
- Code - OSS 1.96.2-1
- Jupyter(拡張機能)2024.11.0
- Python(拡張機能)2024.23.0-dev
- Python 3.13.1
- pip 24.3.1
- IPython : 8.31.0
- ipykernel : 6.29.5
- ipywidgets : 8.1.5
- jupyter_client : 8.6.3
- jupyter_core : 5.7.2
- jupyter_server : 2.15.0
- jupyterlab : 4.3.4
- nbclient : 0.10.2
- nbconvert : 7.16.5
- nbformat : 5.10.4
- notebook : 7.3.2
$ localectl
System Locale: LANG=ja_JP.UTF-8
LC_MESSAGES=C
VC Keymap: jp106
X11 Layout: (unset)
$ echo $ELECTRON_OZONE_PLATFORM_HINT
wayland
$ cat .config/code-flags.conf
--enable-wayland-ime=true
参考
今回は、本当にたくさんのページにお世話になりました。みなさん、ありがとうございました。
- https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter
- https://code.visualstudio.com/docs/datascience/jupyter-notebooks
- https://stackoverflow.com/questions/60330837/jupyter-server-not-started-no-kernel-in-vs-code
- https://github.com/microsoft/vscode-jupyter/issues/10043
- https://qiita.com/kentomo1002/items/a077653870f3b6546fac
- https://github.com/VSCodium/vscodium/issues/1466
- https://qiita.com/nya__str/items/c772986ffe6848d27ac3
- https://www.reddit.com/r/vscode/comments/eq2bfv/vs_code_jupyter_server_no_kernel_python_not/
- https://stackoverflow.com/questions/70007839/why-my-jupyter-kernel-is-not-visible-in-vs-code-jupyter-extension/70010082
- https://zenn.dev/shin1007/articles/6261d50fd46a66
- https://stackoverflow.com/questions/74289506/vs-code-does-not-find-python-kernel
- https://stackoverflow.com/questions/76007264/no-kernel-appearing-in-vs-code-in-jupyter-notebook
- https://stackoverflow.com/questions/71106136/jupyter-extension-for-vscode-on-linux-throws-error-when-doing-anything-jupyter-r