はじめに
Anaconda の環境登録などはせず,pyenv の環境を Jupyter の kernel として登録する時のメモです.
用途としては,python3系の中でバージョンを細かく分けたいときなどです.
Anaconda の仮想環境登録をする場合はこちらを参照.
コマンド一発で
python -m ipykernel install --user --name={name} --display-name={display-name}
name,display-name は既存のものと被らないように適宜設定.
手順
手元で python 3.7.4 の環境を登録した時の手順です.他のバージョンを登録する場合は適宜変更して下さい.
pyenv のインストール方法はこちらの記事が丁寧に書いてくれています.
→ pyenv を用いた Python3 インストール
まず,追加したい version の pyenv に切り替える.
$ pyenv global 3.7.4
pyenv が切り替わっていることを確認する.
$ pyenv versions
  system
  3.6.5
* 3.7.4 (set by /home/user/.pyenv/version)
jupyter で現在登録されている kernel を確認する.
$ jupyter kernelspec list
Available kernels:
  python3    /home/user/.local/share/jupyter/kernels/python3
  python2    /usr/local/share/jupyter/kernels/python
以下のコマンドで現在の pyenv 環境を jupyter に登録する.
$ python -m ipykernel install --user --name=python3.7.4 --display-name=python3.7.4
Installed kernelspec python3.7.4 in /home/user/.local/share/jupyter/kernels/python3.7.4
name, display-name を適宜設定する.
name は kernel の情報が入るディレクトリの名前,display-name は jupyter でカーネルを選択するときの表示名になる.
name では version の指定は行っておらず,現在の環境を登録するだけという点に注意!
$ jupyter kernelspec list
Available kernels:
  python3.7.4    /home/user/.local/share/jupyter/kernels/python3.7.4
  python3        /home/user/.pyenv/versions/3.7.4/share/jupyter/kernels/python3
  python2        /usr/local/share/jupyter/kernels/python2
無事に現在の環境が jupyter のカーネルに登録できました.
左側に出てくる kernel の名前は先ほどつけた name になっています.(display-name はあくまで Jupyter上での名前)
kernel の削除
間違えて登録した時は,以下のようにアンインストール出来ます.
$ jupyter kernelspec uninstall python3.7.4
うまく行かない時は
先ほど登録した kernel のディレクトリの kernel.json というファイルを確認する.
$ cat /home/user/.local/share/jupyter/kernels/python3.7.4/kernel.json 
{
 "argv": [
  "/home/user/.pyenv/versions/3.7.4/bin/python3",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "Python3.7.4",
 "language": "python"
}
“/home/user/.pyenv/versions/3.7.4/bin/python3” が正しく指定出来ているかどうか確認してみる.
ここでのバージョンの指定が間違っていると,nameやdisplay_name があっていても所望のバージョンにならない.
参考
- Jupyterで複数カーネルを簡単に選択するための設定
 
    