📙

Windows版VS Code上のJupyterでKotlinを動かした

2024/12/23に公開

概要

Windows版Visual Studio CodeにJupyter Notebookの拡張機能をインストールして、Conda環境のPythonをインストールして、そこにkotlin-jupyter-kernelをインストールして、WindowsにJAVA_HOMEの環境変数を設定したところ、無事Kotlinを動かすことに成功した。

環境

Windows 10
VS Code: 1.96.2
Java: 作業開始時点ではまだ入ってない
Python: 作業開始時点ではまだ入ってない
実行日: 2024/12/23

経緯

Windows版Visual Studio CodeでJupyter Notebookのファイルが読めたので、折角ならその場で実行もしたいと思った。
そのNotebookはKotlin Kernelを使用しているため、kotlin-jupyter-kernelをインストールしたい。

カーネルの変更

カーネルは右上のここで変更する。
VS Code上のカーネル変更ボタン

今回VS Code上で行うカーネルの操作は、すべてここを起点にして行われる。このボタンを押すと対話的なUIが出てきて、カーネルの変更やそれに必要なインストールを行ってくれる。

まず、ここでとりあえずUIに言われるがままPythonカーネルをインストールしてみたところ、Python版Jupyterがすんなり入って動いた。

試しにKotlinカーネルをインストールしてみたが、出ない

適当な場所で↓のcmdコマンドを実行してkotlin-jupyter-kernelをインストールした。

pip install kotlin-jupyter-kernel

しかし、VS Code上で「Jupyter Kernel...」という表示が出るはずだが、なぜか出なかった。VS CodeやWindowsを再起動しても変わらず。

↓理想
Jupyter Kernelがある選択肢

↓実際(イメージ図)
Jupyter Kernelが無い選択肢

インストールコマンドを再び実行すると↓のようなメッセージが出て、既にインストールされている模様。

Requirement already satisfied: kotlin-jupyter-kernel in c:\users\ユーザー名\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages (0.12.0.322)

どういうわけか、VS Codeの拡張機能がKotlinカーネルを見つけられないようだ。

Condaをインストール

ここはConda環境をインストールすることで解決した。
Condaをインストールするために選択した項目

Condaをインストールすると C:\Users\ユーザー名\anaconda3\python.exe という場所にPythonがインストールされる。

Conda版PythonにKotlinカーネルをインストール

以下のコマンドで入った。

C:\Users\ユーザー名\anaconda3\python -m pip install kotlin-jupyter-kernel

Conda版PythonにKotlinカーネルをインストールすると、なぜかVS CodeがKotlinカーネルを見つけられるようになった。

JAVA_HOMEを設定

しかし、実際にKotlinカーネルを指定して実行しようとすると、↓のような不親切なエラーが出てしまった。

カーネルを起動できませんでした。
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。.
詳細については、Jupyter [ログ] (command:jupyter.viewOutput) を参照してください。

その原因はJavaが見つからないため。

丁度IntelliJ IDEAがCorretto版Javaをダウンロードしてくれていたので、とりあえずそれを設定した。この手順はWindowsに普通にJavaをインストールしていれば関係ないし、実際に指定するパスはどこにどんなJavaをインストールするかによって異なる。
Windowsの設定から環境変数を設定している図

JAVA_HOME: C:\Users\ユーザー名\.jdks\corretto-21.0.5

成功

ここまでしたら無事実行できた。

VS Code上のJupyter NotebookでKotlinが実行できている図

Discussion