必须在目标虚拟环境中执行注册命令并彻底重启jupyter进程,否则内核不会出现在kernel菜单;需先激活环境、安装ipykernel、用--user和合规--name注册,再杀掉所有jupyter进程后重启服务。

必须在目标虚拟环境中执行注册命令,且注册后要彻底重启 Jupyter 进程,否则内核不会出现在 Kernel 菜单里。
确认当前环境已激活并安装 ipykernel
这一步漏掉,后续所有操作都白费。不是“装过 ipykernel 就行”,而是必须在你要添加的那个虚拟环境里装。
- 用
conda activate myenv或source myenv/bin/activate(Linux/macOS)/myenv\Scripts\activate(Windows)激活目标环境 - 运行
python -m ipykernel --version,有输出说明已装;没输出就先装:conda install ipykernel -y(推荐)或pip install ipykernel - 别用系统 Python 或 base 环境去装——那样注册的永远是那个环境,不是你想要的
注册内核时必须带 --user 且 --name 不含空格或特殊字符
权限问题和命名不规范是内核“注册成功但不显示”的两大主因。
-
--user是关键:普通用户无权写入系统级/usr/local/share/jupyter/kernels/,不加会静默失败(终端不报错,但jupyter kernelspec list里找不到) -
--name只能是字母、数字、下划线,比如myenv或py310_cuda;py310 (cuda)或my env会导致注册被截断或忽略 - 完整命令示例:
python -m ipykernel install --user --name=myenv --display-name="Python (myenv)"
注册完必须杀掉所有 jupyter 进程再重开
Jupyter 启动时读一次内核列表,之后不会自动刷新。点 “Restart Kernel” 或刷新页面完全无效。
- 先执行
jupyter kernelspec list,确认输出里真有你刚注册的--name - 关掉所有浏览器 tab 和 notebook 页面
- 终端中查残留进程:
ps aux | grep jupyter(macOS/Linux)或任务管理器(Windows),干掉所有jupyter-notebook或jupyter-lab进程 - 最后重新运行
jupyter notebook启动服务
切换后 import 失败?立刻验证 sys.executable
内核名字对了,不代表它真在跑你的环境。最直接的验证方式就是看解释器路径。
- 在 notebook 单元格中运行:
import sys; print(sys.executable) - 输出必须匹配目标环境路径,例如:
/home/user/miniconda3/envs/myenv/bin/python(Linux/macOS)或C:\Users\name\miniconda3\envs\myenv\python.exe(Windows) - 如果不匹配:先 Kernel → Interrupt,再 Kernel → Change Kernel 重新选一次;还不行就
jupyter kernelspec remove myenv删除后重装
最容易被忽略的是:你以为在 notebook 里点了 “Change Kernel” 就完成了全部配置——其实注册、路径、进程三者缺一不可,任一环节出错都会导致 import 报错或包找不到。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











