jupyter notebook のカーネルが読み込めない
jupyter notebookでは仮想環境を簡単に変更できますが、今回うまく環境が切り替えることが出来なかったので、メモしておく。
github
- githubのjupyter notebook形式のファイルはこちら
google colaboratory
- google colaboratory で実行する場合はこちら
筆者の環境
!sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.6
BuildVersion: 18G9323
!python -V
Python 3.8.5
カーネル確認コマンド
通常、jupyter notebook で実際のpythonの実行環境を表示を確認したい時は以下のコマンドを実行する。 だが、今回ちゃんと所望のpythonのバージョンが指定されていたが、実際にはうまくいかないことがあった。
import sys
sys.executable
'/Users/hiroshi.wayama/anaconda3/envs/lgbm2/bin/python'
課題
lgbmをjupyter notebook上で設定したが、実際に実行するとその環境のpythonが実行されていないことが分かった。
設定しているkernelの一覧
利用しているカーネル一覧は以下のコマンドで確認できる。
!jupyter kernelspec list
Available kernels:
julia-1.7 /Users/hiroshi.wayama/Library/Jupyter/kernels/julia-1.7
lgbm /Users/hiroshi.wayama/Library/Jupyter/kernels/lgbm
lgbm2 /Users/hiroshi.wayama/Library/Jupyter/kernels/lgbm2
my_environment_name /Users/hiroshi.wayama/Library/Jupyter/kernels/my_environment_name
reco_base /Users/hiroshi.wayama/Library/Jupyter/kernels/reco_base
python3 /Users/hiroshi.wayama/anaconda3/share/jupyter/kernels/python3
カーネルの設定ファイル
~/Library/Jupyter/kernels/
にそれぞれのカーネルの設定ファイルが保存されている。
この中でlgbm2をカーネルとして設定している。
!ls -alh /Users/hiroshi.wayama/Library/Jupyter/kernels/
total 0
drwxr-xr-x 7 hiroshi.wayama staff 224B 2 7 17:18 [34m.[m[m
drwxr-xr-x 8 hiroshi.wayama staff 256B 2 7 19:04 [34m..[m[m
drwxr-xr-x 5 hiroshi.wayama staff 160B 12 8 10:18 [34mjulia-1.7[m[m
drwxr-xr-x 5 hiroshi.wayama staff 160B 2 7 17:18 [34mlgbm[m[m
drwxr-xr-x 5 hiroshi.wayama staff 160B 2 7 16:04 [34mlgbm2[m[m
drwxr-xr-x 5 hiroshi.wayama staff 160B 8 24 00:09 [34mmy_environment_name[m[m
drwxr-xr-x 5 hiroshi.wayama staff 160B 8 24 09:25 [34mreco_base[m[m
この中でlgbm2をカーネルとして設定しているがうまくいかない。そのファイルを開いてみる。
!cat /Users/hiroshi.wayama/Library/Jupyter/kernels/lgbm/kernel.json
{
"argv": [
"/Users/hiroshi.wayama/anaconda3/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "lgbm",
"language": "python",
"metadata": {
"debugger": true
}
}
pythonへのパスがデフォルトの/Users/hiroshi.wayama/anaconda3/bin/python
となっており、想定していた/Users/hiroshi.wayama/anaconda3/envs/lgbm/bin/python
ではないことが分かる。
うまくいっているlgbm2を開いてみる。想定通り設定されていることが分かる。
!cat /Users/hiroshi.wayama/Library/Jupyter/kernels/lgbm2/kernel.json
{
"argv": [
"/Users/hiroshi.wayama/anaconda3/envs/lgbm2/bin/python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "python-lgbm2",
"language": "python",
"metadata": {
"debugger": true
}
}
パスの部分を利用したい環境のpythonパスに書き換えるとうまくいった。 あまりこういう所で時間を取られたくないので覚えておく。