jupyter notebook「kernel error」の解決策( FileNotFoundError: [WinError 2] )

jupyter notebook起動時に kernel errorが表示され、実行しても 「FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。」とエラーコードがでる場合の対処法。参照先に実行ファイル(python.exe)がないことが原因。

発生状況

オフラインのパソコンに、別のオンラインPCで構築したAnaconda環境(envsフォルダの中身)をコピーして、jupyter notebookを起動したらkernel errorが表示された。
コードを打っても何もrunできない。

環境
OS:windows 10
Miniconda version:4.6.12
Python version:3.7.1.final.0

jupyter notebook kernel error
kernel error

エラーコード

Failed to start the kernel
Unhandled error
Traceback (most recent call last):
File “C:\Users\Miniconda3\envs\ML\lib\site-packages\tornado\web.py", line 1699, in _execute
result = await result
(~略~)
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。

原因

プログラム言語の実行ファイル(この場合はpython.exe)にアクセスできないことが原因の模様。

解決策

python.exe の参照先となっているアドレスを確認し、修正すれば良い。「kernel.json」というファイルにそのアドレスが記載されている。

kernel.jsonは、
C:\~中略~\envs\作成した仮想環境の名前\share\jupyter\kernels\python3 ←にある。

メモ帳でひらいて正しいアドレスに修正する。

{
“argv": [
“C:\~中略~\envs\作成した仮想環境の名前\python.exe", ←このアドレスが間違っていた
“-m",
“ipykernel_launcher",
“-f",
“{connection_file}"
],
“display_name": “Python 3",
“language": “python"
}

修正後、jupyter notebookを起動すると、無事kernel readyと表示され、runできるようになりました。

jupyter notebook kernel error

参照
https://github.com/jupyter/notebook/issues/4079