【VScode（OSS）】JupyterのKernelが選択できない

# 環境構築
　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の候補が表示されない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3735823/f40dd0f9-c1e3-a149-bd6d-af886b55948f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3735823/54359d13-2137-1970-2317-ec95286172e8.png)


# 試してダメだったこと
* リログイン、再起動、再インストール諸々
→変化なし
* インタープリタをpythonからpython3ないしpython3.13に変更
→変化なし
* notebookをアンインストール
→変化なし
* Jupyter拡張機能、Python拡張機能について、それぞれバージョンを変えてみる、Microsoft公式のMarketplaceから入手したいろんなバージョンのVSIXでも試してみる
→変化はあったものの結局Kernelが検出されず、解決の糸口見えず
* 諦めてブラウザでJupyter Notebook/Labを使う
→補完が使いにくい。候補からの入力内容の決定は、Enterキーかクリック以外ではできないようだ。私は、補完はカーソルキー + Tab派です。

# 解決方法
半日近く苦戦しましたが、あっさり解決しました。
 ## 開発者機能でログを見てみる
 　「Help > Toggle Developer Tools」から、開発者機能を有効にできます。Google ChromeでHTMLを見るときに使うあれみたいな感じです。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3735823/6ae41bfc-1c61-0dd0-9c18-1f42abb88bd4.png)
　右上のほうを見てみると、何やらエラーが出ているようです。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3735823/c4e6041f-5fb6-0433-9df0-bb16163b6137.png)
　なんかすごい怒られてます。--enable-proposed-apiというコマンドラインフラグをつけろとのことで、その通りコマンドラインフラグを付けてみました。変化はありませんでした。
## StackOverflowで解決
https://stackoverflow.com/questions/71106136/jupyter-extension-for-vscode-on-linux-throws-error-when-doing-anything-jupyter-r

　検索をかけてみたところ、StackOverflowに、同じ症状で質問をしている人がいました。（ディストロも、Archと系統が同じManjaroのようです）
 　ここに書かれているように、`argv.json`に`"enable-proposed-api": ["ms-toolsai.jupyter"]`を追記したところ、Kernelが選択できるようになりました。
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3735823/c057c854-4011-1a1b-8023-1ac6a0ef43a3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3735823/6bbdb7fb-b55b-fe02-9503-787672943ff8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3735823/48d9eafd-084d-7c29-41c0-d3df5172bbcc.png)

# 教訓
ログを読む

# 最終的な動作環境
　参考に、最終的な動作環境を書いておきます。拡張機能以外は、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
```bash
$ 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