需先激活目标Conda环境并安装ipykernel,再执行python -m ipykernel install --user --name py311 --display-name "Python 3.11"注册内核,最后重启Jupyter服务才生效。

python -m ipykernel install --user --name python3 --display-name "Python 3" 这条命令就能解决——但前提是它必须在你**目标 Python 3 环境里执行**,否则注册的内核实际指向的是当前 shell 的 Python,不是你想用的那个。
确认目标环境已激活且含 ipykernel
很多人卡在第一步:以为只要装了 ipykernel 就行,其实它必须装在你要暴露给 Jupyter 的那个 Python 环境里。
- 先用
conda activate myenv或source myenv/bin/activate(macOS/Linux)或myenv\Scripts\activate(Windows)激活目标环境 - 运行
which python(macOS/Linux)或where python(Windows),确认输出路径指向你的目标环境(比如~/miniconda3/envs/py311/bin/python) - 执行
python -m ipykernel --version,若报错ModuleNotFoundError,说明没装,就立刻pip install ipykernel或conda install ipykernel
--name 和 --display-name 别混用
--name 是内核在文件系统里的唯一标识,只用于命令行管理(如删除);--display-name 是 Notebook 界面里显示的名字。两者可以不同,但 --name 不能含空格或特殊字符(如 py3.11 在某些 shell 下会出问题,建议用 py311)。
- 推荐写法:
python -m ipykernel install --user --name py311 --display-name "Python 3.11" - 错误写法:
--name py3.11(点号可能被 shell 解析为命令分隔)或--name "Python 3.11"(引号会让内核名带空格,后续删内核麻烦) - 如果重名,Jupyter 会覆盖旧配置,不会报错,但旧内核就没了
内核注册后不显示?检查 kernelspec 路径和权限
Jupyter 查找内核靠的是 jupyter kernelspec list 输出的路径,通常是 ~/.local/share/jupyter/kernels/(Linux/macOS)或 %USERPROFILE%\AppData\Roaming\jupyter\kernels\(Windows)。如果该目录权限不对、磁盘满、或被杀毒软件拦截,注册会静默失败。
- 执行
jupyter kernelspec list,看输出里有没有你刚注册的py311 - 如果没有,手动进对应目录,看是否存在
py311/子文件夹;若存在但没显示,检查里面kernel.json是否有合法的argv字段,且第一项是绝对路径的 Python 可执行文件 - 常见陷阱:用
sudo或管理员权限启动过 Jupyter,导致部分 kernel 目录属主异常,普通用户无法读取
重启 Jupyter 才生效,不是刷新页面
内核列表是在 Jupyter 启动时一次性加载的,改完配置不关服务,新内核永远不会出现。
立即学习“Python免费学习笔记(深入)”;
- 必须彻底终止所有
jupyter notebook或jupyter lab进程(ps aux | grep jupyter+kill -9,或任务管理器结束) - 再重新运行
jupyter notebook,而不是只刷新浏览器标签页 - 新建 Notebook 时右上角下拉菜单才会有新选项;已打开的 Notebook 需手动 Kernel → Change kernel → 选新名字
python -m ipykernel install 的那个 Python 解释器的绝对路径**。如果你移动、重命名或卸载了那个环境,内核就会“黑屏”报错 Kernel died, restarting,而 jupyter kernelspec list 仍显示它存在——因为只是配置文件还在,解释器已经没了。


















