Jupyter Notebook上でconda仮想環境を切り替える

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がインストールされていない仮想環境では警告メッセージが表示されるようになるので、注意が必要です。

この記事を書いた人

井上 研一

経済産業省推進資格ITコーディネータ/ITエンジニア。株式会社ビビンコ代表取締役。コールセンターへのAI導入プロジェクトに参画したことをきっかけに、AI・IoTに強いITコーディネータとして活動。株式会社ビビンコでは、IoTソリューションの開発・導入や、画像認識モデルを活用したアプリの開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。