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

この記事を書いた人

井上 研一

株式会社VIVINKO 代表取締役/VIVINKOコンサルティング 代表
経済産業省推進資格ITコーディネータ/ITエンジニア

ITコーディネータとして、2016年からAIを業務に組み込む活動を続けている。2018年に株式会社VIVINKOを地元・北九州市で創業し、2020年に東京からUターン。生成AIを利活用するためのクラウドサービス「Gen2Go」を開発し、北九州発!新商品創出事業の認定を受ける。北九州市ロボット・DX推進センターでDXコーディネータとして中小企業支援に携わるほか、一般社団法人IT経営コンサルティング九州(ITC九州)の理事も務める。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。