解决问题之前,首先需要理清 jupyter 的一些知识。
1、多个conda环境下,只需要装一个jupyter notebook,环境的切换是通过切换 kernel实现的;
2、不同环境下,都需要安装 ipykernel,conda install ipykernel
3、不同环境下,需要生成内核 kernel ,你切换到你的环境,然后 python -m ipykernel install --user --name 环境名称 --display-name "在notebook中显示的环境名"
注意:1个环境,对应2个kernel.json, 一个位于package里面,一个在share路径下面。上面 #3 生成内核实际就是生成kernel.json文件。
你可以通过 jupyter kernelspec list
来查看各个内核及其路径, 通过 jupyter kernelspec remove XXX
来删除XXX内核。
具体某个kernel.json文件打开如下所示。注意其 环境python路径 和 显示名字。
当你完成这些步骤后,在你需要的环境下,运行jupyter notebook ,就可以切换kernel了,如下图。你可以发现,kernel的切换选项,与上面 jupyter kernelspec list
命令显示的环境是一致的。
如果你的 kernel.json存在,并且 jupyter kernelspec list
也能够正常显示需要的环境,但是 jupyter notebook 不能切换内核kernel ,那么你可能需要安装插件,切换到你安装了jupyter notebook的环境下,通过 conda install nb_conda_kernels
进行安装,之后就可以切换kernel 了。