必须为每个目标环境单独注册内核:先确认环境存在(conda env list),缺失则创建(conda create -n py312 python=3.12);再激活并安装注册ipykernel(conda activate py312 && conda install ipykernel -y && python -m ipykernel install --user --name=py312 --display-name="Python 3.12 (py312)");最后验证jupyter kernelspec list输出含py312且路径正确,重启Jupyter后Kernel菜单可见新选项。

要在Windows系统中让Jupyter Notebook支持多个Python版本(比如同时用Python 3.9写数据清洗、Python 3.12跑新语法实验),必须为每个目标环境单独注册一个内核,不能只靠切换命令行环境或改Notebook设置。
确认目标Python环境已就绪
打开Anaconda Prompt或Windows Terminal,依次执行:
conda env list → 查看所有conda环境;若目标环境不存在,先运行conda create -n py312 python=3.12创建;若用系统Python或pyenv安装的版本,需确认which python3.12(或where python3.12)返回的是绝对路径,【不能是python3.12别名或软链接】。
这一步漏掉会导致后续注册的内核指向错误解释器,import包时直接报错。
在目标环境中安装并注册ipykernel
方法一(推荐用于conda环境):
① conda activate py312 → 激活目标环境
② conda install ipykernel -y → 用conda装比pip更稳,避免依赖冲突
③ python -m ipykernel install --user --name=py312 --display-name="Python 3.12 (py312)" → 【--name值不能含空格或括号,否则jupyter kernelspec list里不显示】
方法二(适用于系统Python或pyenv管理的版本):
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
where python3.12 → 复制完整路径,例如C:\Users\Alice\AppData\Local\Programs\Python\Python312\python.exe
然后执行:C:\Users\Alice\AppData\Local\Programs\Python\Python312\python.exe -m ipykernel install --user --name=py312sys --display-name="Python 3.12 (system)"
验证内核是否注册成功
在任意终端(不必激活环境)运行 jupyter kernelspec list,输出中必须包含你刚注册的--name值(如py312),且路径指向正确的环境目录。
如果没出现,常见原因是:注册命令没在目标环境里执行、漏了--user参数导致权限失败但无报错、--name用了非法字符。此时不要重试,先用jupyter kernelspec remove py312删掉残留再重来。
彻底重启Jupyter服务
关闭所有浏览器标签页 → 在任务管理器中结束所有jupyter notebook、jupyter-lab、python进程 → 重新打开Anaconda Prompt → 输入jupyter notebook启动。
刷新页面后,Kernel → Change kernel菜单里就会出现你注册的“Python 3.12 (py312)”选项。点选后,在单元格中运行import sys; print(sys.executable),输出路径必须和注册时的目标环境路径完全一致。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










