Anaconda下Spyder无法导入已安装的numpy等第三方包如何解决
问题描述
在Anaconda的Spyder中导入numpy、pandas等包时,每次都会出现ModuleNotFoundError: No module named 'numpy'报错。最初怀疑是Python版本问题,因为Spyder显示其使用的Python版本为3.8.2,而此前执行python -V查询到的版本是3.8.8。切换版本后终端提示Requirement already satisfied: numpy in /opt/anaconda3/lib/python3.8/site-packages (1.20.3),但依然无法在Spyder中导入numpy。
相关环境信息
- Spyder version: 4.2.5 None
- Python version: 3.8.2 64-bit
- Qt version: 5.9.7
- PyQt5 version: 5.9.2
- Operating System: Darwin 19.6.0
终端执行记录
(base) readinger:~ neuro$ python -V Python 3.8.2 (base) readinger:~ neuro$ (base) readinger:~ neuro$ (base) readinger:~ neuro$ pip install numpy Requirement already satisfied: numpy in /opt/anaconda3/lib/python3.8/site-packages (1.20.3) (base) readinger:~ neuro$
Spyder运行报错记录
runcell(0, '/Users/uju/untitled0.py') Traceback (most recent call last): File "/Users/uju/untitled0.py", line 9, in <module> import numpy as np ModuleNotFoundError: No module named 'numpy'
解决方案
该问题的核心原因是Spyder绑定的Python解释器和终端中安装numpy所用的解释器不属于同一个环境,即便Python大版本号一致,不同环境的依赖包也相互独立、互不通用。
排查步骤
- 打开Spyder,依次进入「工具」→「偏好设置」→「Python解释器」页面,复制当前使用的解释器完整路径。
- 打开终端,激活base环境后执行
which python,获取终端当前使用的Python解释器路径,将两个路径做对比,不一致即可确认是解释器匹配问题。
修复方法(二选一即可)
方法1:切换Spyder的解释器
在Spyder的Python解释器设置页,选择「使用以下自定义解释器」,将终端which python输出的路径粘贴到输入框中,保存设置后重启Spyder,即可正常导入已安装的numpy、pandas等包。
方法2:为Spyder当前解释器单独安装依赖
将第一步复制的Spyder解释器路径替换到下方命令中执行,即可直接把依赖包安装到Spyder对应环境的依赖目录:
# 将<Spyder解释器路径>替换为你实际复制的路径,示例:/Users/xxx/opt/anaconda3/bin/python <Spyder解释器路径> -m pip install numpy pandas
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

