必须安装spyder-kernels,否则,即使修改解释器路径,IPython内核仍然是falback到base环境;conda需要在目标环境中执行 install spyder-kernels重启Spyder和内核,然后通过importt sys; print(sys.executable)验证路径。
不能只改解释器路径—必须安装 spyder-kernels,否则内核启动失败,import 任何包都会报错。
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…” 或闪退
安装命令必须在目标虚拟环境中运行,不能在目标虚拟环境中运行 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\nameAnaconda3envs\myenv\python.exe,而不是 ...anaconda3python.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 如果注册失败,优先使用英文用户名或重新安装到纯英文路径。