Windows10下Anaconda2配置IPython Notebook Python3内核失败问题排查
我来帮你一步步分析解决问题——先搞清楚为啥Python3的选项没出现在Notebook里,再给你说个在Windows10的Anaconda环境里同时用Python2.x和3.x的省心办法。
问题排查与修复
1. 先确认Python3内核有没有真的注册成功
你先去这个路径看看:C:\Users\<你的用户名>\AppData\Roaming\jupyter\kernels,找一下有没有叫python3的文件夹,里面应该有个kernel.json文件。打开这个文件,检查里面的路径是不是指向你conda创建的ipykernel_py3环境里的python.exe——正常应该是类似这样的:
{ "argv": [ "C:\\ProgramData\\Anaconda2\\envs\\ipykernel_py3\\python.exe", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "Python 3", "language": "python" }
要是这个文件夹或者文件不存在,说明注册没成功,你重新激活ipykernel_py3环境,再跑一遍python -m ipykernel install --user就行。
2. 升级你的IPython/Jupyter版本
你现在用的是Anaconda2自带的旧版IPython Notebook,这很可能是关键问题——老版本对多内核的支持不太好,识别不了你刚注册的Python3内核。你打开Anaconda Prompt(或者PowerShell,确保激活了base的Python2.7环境),跑下面的命令升级相关包:
conda update ipython notebook jupyter_client
升级完重启Notebook,应该就能看到Python3的选项了。
3. 不用管C盘的Python27/Python34文件夹
你C盘里的这两个文件夹和你用的conda虚拟环境没关系,尤其是Python34里没有python.exe,完全不影响你的操作,不用理会。只要确保你所有的conda命令都是用Anaconda2自带的那个(就是where anaconda查到的路径)就行,别被系统里其他零散的Python环境干扰。
同时用Python2和3的简便方法
其实更推荐用Jupyter Notebook(比旧版IPython Notebook功能更全)来管理多内核,步骤超清晰:
- 先确保base环境(Python2.7)装了Jupyter
要是还没装,激活base环境后跑:conda install jupyter - 创建Python3虚拟环境并注册内核
# 可以指定具体版本,比如python=3.8,按需修改 conda create -n py3env python=3.8 ipykernel # 激活这个Python3环境 activate py3env # 把它注册到Jupyter,还能自定义显示名称 python -m ipykernel install --user --name py3env --display-name "Python 3.8" - 把Python2.7也注册成独立内核(可选)
回到base环境(执行activate base),运行:python -m ipykernel install --user --name py2env --display-name "Python 2.7" - 启动Jupyter Notebook
在base环境里执行jupyter notebook,打开界面后,"New"下拉菜单里就有两个版本的选项了,想用哪个就选哪个。
要是以后想删掉某个内核,直接跑这个命令就行:
jupyter kernelspec remove py3env
内容的提问来源于stack exchange,提问作者onyourmark

