必须安装spyder-kernels,否则即使修改解释器路径,ipython内核仍fallback至base环境;需在目标环境执行conda install spyder-kernels并重启spyder与内核,再通过import sys; print(sys.executable)验证路径。

不能只改解释器路径就完事——必须装 spyder-kernels,否则内核启动失败,import 任何包都会报错。
为什么改了 Python 解释器路径还是用的 base 环境?
Spyder 的 IPython 控制台和代码执行依赖内核(kernel),不是单纯读取解释器路径。即使你在 Preferences → Python Interpreter 里选了 envs/myenv/python.exe,如果该环境没装 spyder-kernels,Spyder 启动时会 fallback 到 base 环境的 kernel,或者直接报错 No module named 'spyder_kernels'。
常见表现:
- 右下角显示的 Python 版本仍是 base 的(比如 3.12),不是你选的环境版本(比如 3.10)
-
import torch或import pandas报ModuleNotFoundError,尽管你在目标环境里conda list确认已安装 - 重启内核后控制台卡在 “Connecting to kernel…” 或闪退
怎么正确安装 spyder-kernels 到目标环境?
必须在目标虚拟环境中运行安装命令,不能在 base 或其他环境里装。
操作步骤:
- 打开
Anaconda Prompt(不是普通 cmd) - 执行
conda activate myenv(把myenv换成你的环境名) - 运行
conda install spyder-kernels(推荐用 conda;若要用 pip,则用pip install spyder-kernels) - 安装完成后,关闭所有 Spyder 窗口,再重新打开
注意:spyder-kernels 版本需与当前 Spyder 主程序兼容。如果 Spyder 是 6.x,建议装 spyder-kernels=2.5;若报依赖冲突,可加 --force-reinstall 或指定版本,例如:conda install spyder-kernels=2.4.4。
怎么验证当前用的是哪个环境?
别信右下角小字——它有时缓存或显示滞后。最可靠的方式是在 IPython 控制台中运行:
import sys print(sys.executable)
输出应为类似 C:\Users\name\anaconda3\envs\myenv\python.exe,而不是 ...\anaconda3\python.exe。
还可以检查包来源:
!conda list | findstr "torch"
或更通用:
!conda list --prefix $(python -c "import sys; print(sys.prefix)")
如果输出路径指向 envs/myenv,说明切换成功;如果提示 CommandNotFoundError,说明当前 kernel 根本没跑在 conda 环境里。
容易被忽略的关键点
每次换环境后,必须手动 重启内核(菜单:Consoles → Restart kernel,或快捷键 Ctrl + .),否则旧 kernel 还在内存里跑着。
如果你通过 Tools → Preferences → Python Interpreter 修改了解释器路径,但没重启 Spyder 本身,部分设置可能未加载——尤其是首次配置新环境时,建议改完后直接关掉再重开。
另外,Windows 下路径含中文或空格(如 C:\Users\张三\anaconda3\...)可能导致 spyder-kernels 注册失败,此时优先用英文用户名或重装到纯英文路径。











