如何解决Jupyter Notebook运行两个Python3版本导致的重复函数问题?
我之前在Mac上折腾Anaconda和Jupyter的时候也碰到过几乎一模一样的问题!大概率是Anaconda的Python3环境和系统自带的Python环境在Jupyter的kernel配置里重复注册了,导致Jupyter同时加载了两个相同的Python3内核,才会出现重复函数的情况。给你几个亲测有效的解决步骤:
1. 先确认当前Jupyter的kernel列表
打开终端,输入下面的命令,看看已经注册到Jupyter的所有内核:
jupyter kernelspec list
你大概率会看到两个名称类似的Python3内核(比如一个是系统自带的python3,另一个是Anaconda的conda-python3),这就是问题根源。
2. 删除多余的重复kernel
找到那个不属于Anaconda的Python3 kernel的路径(比如系统自带的可能在/usr/local/share/jupyter/kernels/python3),然后用命令删除整个配置文件夹:
rm -rf /usr/local/share/jupyter/kernels/python3
⚠️ 注意:操作前一定要确认好要删除的是多余的那个,别把Anaconda的内核配置删掉了!
3. 重新注册Anaconda的Python3内核
先激活Anaconda的base环境(或者你平时常用的Python3环境),然后运行下面的命令,把Anaconda的Python3内核重新注册,并且给它一个清晰的名称,避免后续混淆:
python -m ipykernel install --name python3 --display-name "Python 3 (Anaconda)"
4. 检查并确认Python2内核的配置
你之前添加了Python2环境,也可以顺便确认它的配置是否正确。如果是用conda创建的Python2环境,先激活它,然后运行:
python2 -m ipykernel install --name python2 --display-name "Python 2"
确保Python2的内核是独立注册的,不会和Python3的内核冲突。
5. 重启Jupyter Notebook
把所有打开的Jupyter窗口都关掉,重新启动Jupyter Notebook,再去检查标签页和函数显示,应该就不会出现重复的情况了。
另外,关于是否有其他用户遇到过:当然有很多开发者碰到过类似的多内核冲突问题,尤其是在混合使用系统Python和Anaconda环境的时候,核心原因都是内核注册重复或者环境变量优先级导致的,按照上面的步骤一般都能解决。
内容的提问来源于stack exchange,提问作者Peter Hwang

