Pythonを使ってプログラムを作ったり、データ分析等の作業を行う場合、condaで仮想環境をいくつか作って作業をすることは多いと思います。私の場合、pyenvを使っているので、例えば下記のように各ディレクトリごとに使う仮想環境を変えるということもしています。
pyenv local anaconda3-2020.02/envs/py36
そうやって、作業を行うそれぞれのディレクトリに移って、Jupyter Notebookを立ち上げれば仮想環境を使い分けることができます。
ただ、そうすると仮想環境毎にJupyterをインストールする必要があったり、いちいちJupyter Notebookを起動しないといけないので、ちょっと面倒に感じることもあります。
そこで、Jupyter Notebookを1つだけ立ち上げて、その中で仮想環境を切り替えたくなります。その際、jupyter_environment_kernels
を使うと、それが実現できます。
まず、pipでパッケージをインストールします。
pip install environment_kernels
Jupyter Notebookに設定を追加する必要があるので、設定ファイルを作成します。
jupyter notebook --generate-config
~/.jupyter/jupyter_notebook_config.py
というファイルが作成されるので、下記の内容を追記します。
c.NotebookApp.kernel_spec_manager_class = 'environment_kernels.EnvironmentKernelSpecManager'
c.EnvironmentKernelSpecManager.conda_env_dirs = [ '/Users/inoccu/.anyenv/envs/pyenv/versions/anaconda3-2020.02/envs' ]
あとは、Jupyter Notebookを起動すると、下図のように仮想環境の切り替えができるようになります。
ただ、ここで作成したJupyter Notebookの設定ファイルは、すべての仮想環境で共有されるので、jupyter_enviromnet_kernels
がインストールされていない仮想環境では警告メッセージが表示されるようになるので、注意が必要です。