新环境在Jupyter中不显示,根本原因是未在目标环境中安装ipykernel并执行python -m ipykernel install --user --name=xxx --display-name="xxx"注册;必须先conda activate或source激活环境,再装包、再注册,缺一不可。

直接说结论:新环境在 Jupyter 里不显示,90% 是因为没装 ipykernel,也没执行 python -m ipykernel install。不是路径问题、不是浏览器问题、更不是 Jupyter 坏了——就是漏了这两步。
conda 激活后必须装 ipykernel
很多人在 conda activate myenv 后,直接跑 python -m ipykernel install,结果报错:ModuleNotFoundError: No module named 'ipykernel'。这是因为 ipykernel 不是 Anaconda 全局自带的包,每个环境得自己装。
- 务必在目标环境中运行:
conda install ipykernel(推荐)或pip install ipykernel - 验证是否装好:
python -m ipykernel --version能输出版本号才算成功 - 别在
base环境里装完就以为万事大吉——ipykernel必须装进你要用的那个环境里
python -m ipykernel install 的参数不能写错
--name 和 --display-name 容易混淆,写错会导致内核名乱码、重复、甚至指向错误环境。
-
--name是内核唯一标识(文件夹名),只能含字母/数字/下划线,比如py39-tf28;不要带空格或中文 -
--display-name是你在 Jupyter 下拉菜单里看到的名字,可以带空格和中文,比如"TensorFlow 2.8 (Python 3.9)" - 必须加
--user:否则内核会装到系统级目录,普通用户没权限,Jupyter 找不到 - 完整命令示例:
python -m ipykernel install --user --name py39-tf28 --display-name "TF 2.8 + Py39"
内核装完却找不到?先查 jupyter kernelspec list
重启 Jupyter 也看不到新内核?别急着重装,先确认它真被注册进去了。
- 运行
jupyter kernelspec list,输出里应有你刚设的--name,比如py39-tf28 /home/xxx/.local/share/jupyter/kernels/py39-tf28 - 如果没出现,说明
install命令根本没成功执行(常见于没激活环境、或用了错误的 Python 解释器) - 如果出现了但 Jupyter 还不认,检查该路径下的
kernel.json文件:"argv"字段里的 Python 路径,是否指向你期望的环境(比如.../anaconda3/envs/py39-tf28/bin/python) - 删错内核用:
jupyter kernelspec remove py39-tf28(注意:不加--user,直接跟名字)
最常被忽略的一点:python -m ipykernel install 必须在目标环境的 shell 里执行,而不是在 Jupyter 里、也不是在 base 环境里随手敲——哪怕你 which python 看起来对,只要没 conda activate 过,python 就不是你想的那个。

















