新建conda Python虚拟环境后Jupyter原有内核消失如何恢复
问题原因
出现该现象是因为你当前执行jupyter notebook调用的是刚创建的myenv环境内部的jupyter实例——大概率是创建环境时自动安装了jupyter相关依赖,或是你未切回原环境就直接执行了启动命令。这个独立的jupyter实例仅配置了当前myenv对应的Python内核,未关联其他conda环境的内核配置,因此启动后仅显示Python 3单内核。
恢复方法
方法1:切回原jupyter安装环境启动(快速恢复)
- 终止当前运行的jupyter进程,在终端执行
conda deactivate退出myenv环境,切回你之前安装jupyter的环境(多数情况为默认base环境) - 重新执行
jupyter notebook启动程序,原有注册过的内核会全部正常显示
方法2:全局注册各环境内核(任意环境启动都可识别所有内核)
如果需要不管在哪个conda环境启动jupyter,都能看到所有环境的内核,按以下步骤给每个需要用到的环境注册全局内核:
- 激活目标conda环境,以名为
old_env的旧环境为例:conda activate old_env - 在该环境内安装内核依赖包:
conda install ipykernel - 执行命令将该环境注册为jupyter可识别的全局内核:
python -m ipykernel install --user --name=old_env --display-name "Python (old_env)"
参数说明:
--name后填写conda环境的实际名称,--display-name后填写jupyter内核选择菜单里展示的自定义名称,可根据需求修改为易识别的命名
- 所有需要在jupyter中使用的conda环境,重复以上3步操作即可。
排查命令
注册完成后如果仍有内核显示异常,可执行以下命令排查:
- 执行
jupyter kernelspec list查看当前jupyter已识别的所有内核列表及对应存储路径,确认目标环境内核是否注册成功 - 若存在失效的冗余内核,执行
jupyter kernelspec remove <无效内核名>即可清理
注意:不建议在每个conda环境中都单独安装完整的jupyter包,很容易引发环境变量冲突、内核识别混乱的问题。仅需要在你常用的主环境(比如base环境)安装jupyter,其他使用环境仅安装ipykernel完成内核注册即可。
内容的提问来源于stack exchange,提问作者Wang Hewen
相关产品推荐
相关产品推荐

