前言
今天突发奇想,想发一篇文章,可能是因为刚刚碰巧解决了一个问题(jupyter notebook添加并切换内核),后来写文章的时候才发现,这个方法已经有大佬提过了,如果你不想听我啰嗦就翻到参考部分,查看大佬的文章吧。
1 jupyter notebook添加内核/环境
1.1 进入Anaconda Prompt
1.2 创建新的python环境
键入(复制粘贴也是可以的)conda create -n 虚拟环境名称 python=版本号 创建新的python环境:
一路同意就行,等待完成后,键入conda env list 查看当前所有的python环境:
看到我们刚才创建的环境了!
对了,你可键入conda remove -n 环境名 --all 删除指定环境,“--all”对应删除环境下所有的包。
1.3 于新环境下安装ipykernel
还是在Anconda Prompt,键入conda activate 虚拟环境名称 进入到指定环境中:
前面括号里的内容由base变为encname了!键入conda install ipykernel 为当前环境(前面括号里的)安装ipykernel,同样一路同意:
等待完成后,键入conda list 查看当前环境下所有包,能找到ipykernel就代表安装成功了,或者键入python -m ipykernel --version 出现以下内容就代表安装成功了:
1.4 添加内核
在当前环境下键入python -m ipykernel install --user --name=内核真名 --display-name 在内核选择时显示的内核假名 添加内核,内核真名不必要与上面创建的环境名相同(相同还是好些),这样创建的内核就会指向当前环境,出现下面内容就代表创建成功了:
1.5 检测内核是否添加正确
如果进行上述步骤都没有问题,在jupyter notebook中也可以选择相应内核,但就是不管用(比如环境下明明有某个包,但import时还是找不到),那可能是因为你的内核并不指向你认为的虚拟环境,内核≠虚拟环境,如何查看内核指向的虚拟环境呢?
还是在Anaconda Prompt中,键入jupyter kernelspec list 查看jupyter所有内核,找到你的内核,进入到对应的目录下:
对了,你可以键入jupyter kernelspec remove 内核名称 删除指定内核。
打开kernel.json文件,这条路径是不是很眼熟,不就是在pycharm中选择环境时添加的路径嘛,确保这个路径对应着你想要的虚拟环境,这样该内核就指向了你想要的虚拟环境:
2 jupyter notebook切换环境
打开jupyter notebook,kernel->Change kernel->envname_env选择你的环境(内核)吧!
参考
【最全指南】如何在 Jupyter Notebook 中切换/使用 conda 虚拟环境?_jupyter notebook 使用conda-CSDN博客
conda install nb_conda失败原因_为什么conda install不了-CSDN博客
jupyter notebook添加内核_jupyter添加内核-CSDN博客
结语
这个方法确实是自己偶然发现的,那时我就奇怪,为什么个把月前添加的内核管用而现在添加的却不管用了,于是我想在内核list提到的路径下寻找两个内核的不同(管用的和不管用的),翻开kernel.json文件的瞬间就锁定了“argv”里的这个路径,最终解决了问题。
感慨一个bug的解决伴随的许多的偶然,偶尔看到了一篇文章,偶尔看到了熟悉的字符,偶尔...
希望这个方法对你有用,文中出现的不当与错误也请指正!
提醒
有没有一句话能够让你迅速回忆起这篇文章的内容呢?
你创建内核了吗?你的内核就是你的环境吗?