kernel菜单看不到新环境,是因为jupyter只读取已注册的内核(jupyter kernelspec list所列),不扫描本地conda环境;必须在激活目标环境后安装ipykernel并执行python -m ipykernel install --user --name=py310 --display-name="python 3.10"注册,且注册后需彻底重启jupyter进程并确认内核重启弹窗。

为什么 Kernel 菜单里根本看不到新环境?
不是 Jupyter 没扫描到,而是它压根不扫描——jupyter kernelspec list 只读取已注册的内核,和你本地有多少 conda 环境完全无关。常见现象包括:
-
Kernel → Change kernel下拉菜单只有Python 3或Python (base),没有带版本号或自定义名的选项 - 执行了
conda activate py310再启动jupyter notebook,结果还是跑在 base 环境里 -
jupyter kernelspec list输出里查不到py310这个名字
根本原因:内核注册和 conda 环境是解耦的。必须手动注册,且注册动作必须发生在目标环境激活状态下。
注册内核前必须确认的三件事
漏掉任意一项,注册的就是旧环境的解释器,后续切换必然失败。
- 先
conda activate py310(确保终端提示符显示(py310)) - 运行
python -c "import sys; print(sys.executable)",输出路径必须指向envs/py310/...,否则说明没真正激活 - 确认
ipykernel已安装:python -m pip show ipykernel或conda list ipykernel;没输出就先pip install ipykernel
python -m ipykernel install 的关键参数怎么选?
命令本身很简单,但参数含义直接影响能否正确识别和切换:
-
--name=py310:这是内核在文件系统中的唯一 ID,会出现在jupyter kernelspec list输出里,也用于删除(jupyter kernelspec remove py310),只能含英文、数字、下划线,不能有空格或括号 -
--display-name="Python 3.10":这是 Notebook 界面里显示的名字,可含中文、空格、括号,比如"PyTorch 2.6 + CUDA",纯展示用 - 务必加
--user:避免权限问题,不推荐--system,除非你明确要全局安装
完整示例:python -m ipykernel install --user --name=py310 --display-name="Python 3.10"
切换后 import 失败或版本不对,怎么快速验证?
别猜,直接看解释器路径——这是唯一可信指标:
- 在 Notebook 单元格中运行:
import sys; print(sys.executable) - 正确输出应类似:
/home/user/miniconda3/envs/py310/bin/python(Linux/macOS)或C:\Users\XXX\miniconda3\envs\py310\python.exe(Windows) - 如果路径不对,先点
Kernel → Interrupt,再Kernel → Change kernel → Python 3.10,**必须点确认弹窗重启内核**,跳过等于白切 - 仍不对?用
jupyter kernelspec remove py310彻底删掉旧注册,重新走一遍激活→检查→安装→注册流程
最容易被忽略的是:注册完不重启 Jupyter 进程,或者切换时没确认内核重启弹窗。这两个动作缺一不可,否则看到的永远是缓存里的旧状态。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











