Ubuntu16.04下Python2.7导入numpy报错问题求助
解决Python 2.7中Import NumPy时路径指向Python 3.5包的问题
从你给出的报错信息来看,核心问题很明确:你的Python 2.7解释器在尝试加载位于Python 3.5目录下的NumPy包(路径/usr/local/lib/python3.5/dist-packages/numpy/),这就导致了版本不兼容的报错。下面是几种可行的解决方案:
1. 为Python 2.7单独安装NumPy
Ubuntu 16.04中默认pip对应Python 2,pip3对应Python 3,你可以直接用Python 2的包管理工具安装适配的NumPy版本:
- 首先确认
pip的归属:执行pip --version,如果输出显示python 2.7,说明这是Python 2的pip工具 - 执行安装命令:
sudo pip install numpy
如果pip指向的是Python 3,改用pip2:
sudo pip2 install numpy
安装完成后,NumPy会被放在Python 2.7专属的包目录(比如/usr/local/lib/python2.7/dist-packages/),此时再在Python 2.7中import numpy就不会再指向Python 3的包了。
2. 检查并修正Python 2.7的模块搜索路径
如果安装后仍然报错,可能是Python 2.7的sys.path中错误包含了Python 3的包路径。你可以在Python 2.7交互环境中运行以下代码查看路径:
import sys print(sys.path)
如果输出里有/usr/local/lib/python3.5/dist-packages/,说明这个路径被错误添加了:
- 检查你的环境变量
PYTHONPATH,执行echo $PYTHONPATH,如果包含Python 3的路径,打开~/.bashrc或~/.profile文件,删除对应的export PYTHONPATH=...行,然后执行source ~/.bashrc生效。 - 也可以临时在Python代码中移除错误路径:
import sys sys.path.remove("/usr/local/lib/python3.5/dist-packages/") import numpy
3. 使用虚拟环境彻底隔离Python版本
为了避免不同Python版本的包冲突,最稳妥的方式是使用虚拟环境:
- 安装virtualenv:
sudo pip install virtualenv
- 创建Python 2.7专属的虚拟环境:
virtualenv -p /usr/bin/python2.7 my_py2_env
- 激活虚拟环境:
source my_py2_env/bin/activate
- 在激活的环境中安装NumPy:
pip install numpy
此时这个虚拟环境完全独立于系统的Python 3环境,所有包都只会安装到虚拟环境内部,不会出现路径混淆的问题。
内容的提问来源于stack exchange,提问作者user7689454
相关产品推荐
相关产品推荐

