三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

解决 Conda 环境在 Jupyter Notebook 中不显示的问题(含重复 Kernel 排查)

解决 Conda 环境在 Jupyter Notebook 中不显示的问题(含重复 Kernel 排查)

目录

  • 一、问题背景
  • 二、问题本质
    • 问题1 conda env list ≠ Jupyter 可见环境
    • 问题2 环境未注册 ipykernel
    • 问题3 Kernel 重复显示的原因
  • 三、解决方案
    • Step 1:确认当前 Jupyter 使用的 Python
    • Step 2:为目标环境安装 ipykernel
    • Step 3:注册 Kernel 到 Jupyter
    • Step 4:检查已注册 Kernel
    • Step 5:检查 Jupyter 来源是否正确
  • 四、推荐标准流程(最佳实践)
  • 五、问题总结
  • 六、完整排查命令清单
  • 七、结论
  • 参考资料

一、问题背景

在终端中运行:

condaenvlist

可以看到本地存在多个 Python 环境,例如:

  • base
  • cad310
  • cad_env
  • ml312
  • py310

但在Jupyter Notebook中:

  • 无法看到 ml312
  • 某些环境(如 cad310)出现重复显示
    这类问题在使用 Conda + Jupyter 的开发环境中非常常见。

二、问题本质

问题1 conda env list ≠ Jupyter 可见环境

conda env list只能说明:环境存在于本地磁盘
但 Jupyter 是否能识别某个环境,取决于:该环境是否安装并注册了 ipykernel 。Jupyter 只会显示已经注册的 Kernel(内核)。


问题2 环境未注册 ipykernel

如果某个环境(例如 ml312)没有安装并注册 ipykernel:

  • Jupyter 不会显示它
  • 即使环境存在也无效

问题3 Kernel 重复显示的原因

常见原因包括:

  • 同一个环境被重复注册
  • 不同 Python 安装路径下重复注册
  • 多个 Jupyter 来源混用(base / pip / 其他环境)
  • kernelspec 目录中存在重复项

三、解决方案


Step 1:确认当前 Jupyter 使用的 Python

在 Notebook 中运行:

importsys sys.executable

确认是否指向正确的 Conda 环境路径。


Step 2:为目标环境安装 ipykernel

以 ml312 为例:

conda activate ml312 condainstallipykernel

Step 3:注册 Kernel 到 Jupyter

python-mipykernelinstall--user--nameml312 --display-name"Python (ml312)"

说明:

  • –name:kernel 内部名称
  • –display-name:在 Jupyter 中显示的名称

完成后重启 Jupyter。


Step 4:检查已注册 Kernel

jupyter kernelspec list

如果存在重复项,可删除多余 kernel:

jupyter kernelspec remove cad310

Step 5:检查 Jupyter 来源是否正确

where jupyter

确保只使用期望的 Conda 环境中的 Jupyter。
如果发现多个来源,建议:

  • 统一使用一个 Conda 环境
  • 避免 pip 与 conda 混装 Jupyter

四、推荐标准流程(最佳实践)

每创建一个新环境后执行:

conda activate 新环境名 condainstallipykernel python-mipykernelinstall--user--name新环境名 --display-name"Python (新环境名)"

这样可以确保:

  • Jupyter 一定可见
  • 不会出现环境丢失问题
  • Kernel 名称清晰可控

五、问题总结

现象原因解决方法
环境存在但 Jupyter 看不到未注册 ipykernel安装并注册 kernel
Kernel 重复显示kernelspec 重复注册使用 jupyter kernelspec list 排查并删除
环境无法选择Jupyter 启动路径错误检查 where jupyter
修改后无变化未重启 Jupyter完全关闭后重新启动

六、完整排查命令清单

condaenvlist jupyter kernelspec list where jupyter

在目标环境中:

conda activate ml312 condainstallipykernel python-mipykernelinstall--user--nameml312 --display-name"Python (ml312)"

七、结论

Jupyter 显示的环境并不是由 Conda 自动决定的,而是由:是否注册为 Kernel 决定
只要正确安装并注册 ipykernel,所有 Conda 环境都可以在 Jupyter 中正常显示。
通过规范化 kernel 注册流程,可以彻底解决环境缺失与重复显示问题。


参考资料

  1. Jupyter 官方文档:Installing kernels:https://ipython.readthedocs.io/en/stable/install/kernel_install.html
  2. IPykernel 项目说明:https://github.com/ipython/ipykernel
  3. Conda 官方文档:https://docs.conda.io/
  4. Jupyter Kernelspec 说明:https://jupyter-client.readthedocs.io/en/stable/kernels.html
← 返回列表