Minicondaで作成した仮想環境をJupyter notebookに反映させる


1.背景

自宅のPCが故障したのを機にPCを新調し、今度は何かと物議をかもしているAnacondaではなくMinicondaを新しくインストールした。

久々にQiitaに記事を投稿するための仮想環境を作成。
miniconda経由で作成した仮想環境をjupyterに適応させ検証したかったが、意外とハマってしまい・・

Anacondaの仮想環境をjupyterに反映させる記事は多数あったが、Minicondaを使用しているからなのか私の場合はそれだけではどれも解決には至らなかったので記録として残しておく。(結論からいうとMinicondaは関係なかったですが、、)

  • 動作環境
    • OS : Windows10 pro
    • Python : 3.8.3 // Miniconda 4.9.1

2.まずは参考記事を元に試してみる

2-1.仮想環境作成

#sample_envという仮想環境をpython3.8.3で作成(pythonのバージョンは何でもいいと思う)
conda create -n sample_env python=3.8.3

#base環境から作成したsample_env仮想環境に切り替える
conda activate sample_env

2-2.その他の作業、確認

jupyter_environment_kernelsの導入

#jupyter_environment_kernelsのインストール
pip install environment_kernels

jupyter_notebook_config.pyを作成

#~/.jupyter/jupyter_notebook_config.pyに設定ファイルが作成される
jupyter notebook --generate-config

作成したjupyter_notebook_config.pyの最後行を以下のように追記して保存※Miniconda

c.NotebookApp.kernel_spec_manager_class = 'environment_kernels.EnvironmentKernelSpecManager'
c.EnvironmentKernelSpecManager.env_dirs=['/Users/username/miniconda3/envs/']

動作確認をするが・・・うまくいかず。
(↓のようなものは選択できるようになったが、これはbase環境)

3.解決策と確認

仮想環境に切り替えた状態でipykernelをインストールで解決した。

#base環境から作成したsample_env仮想環境に切り替える
conda activate sample_env

#ipykernelをインストール ※jupyterをインストールでもOK
conda install notebook ipykernel

この状態からjupyterを再起動して、まず現在の環境を確認。


次に、Kernel>>Change Kernelでsample_envに仮想環境を切り替える


最後にもう一度環境を確認し、環境が切り替わっていることを確認できた。

4.最後に

ミソなのが、作成した仮想環境にipykernelを導入するというところだった。
ipykernelを導入しなくても「!conda info -e」で作成した環境の存在自体は確認できたが、ipykernelを導入しないと、作成した仮想環境が「Change kernel」に出現しなかった。
意外とこういうので時間を使ってしまうんだよなぁ・・

(追記)
参考記事にも
「作る仮想環境の方にも必ずjupyterをインストールする必要があります。」と記載がありましたね。。これを見落としていただけでしたが、同じところで躓く人もいると思うので一応記事は残しておきます。(Minicondaの記事はググってもでないですし)


参考記事:
Condaで作ってる仮想環境の切り替えをJupyter上で簡単に行う方法