You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2虚拟环境中pip安装numpy成功却无法导入问题求助

问题分析与解决办法

看你的命令行输出,创建虚拟环境时的这条提示是关键:

Not overwriting existing python script /home/ec2-user/env/bin/python (you must use /home/ec2-user/env/bin/python36)

这说明你的虚拟环境里的python命令并没有指向虚拟环境的Python3.6,而是依然链接到系统默认的Python(大概率是Python2.x)。你用pip install numpy确实把numpy装到了虚拟环境的Python3.6里,但运行python的时候调用的是系统Python,自然找不到这个模块。

验证问题

先在激活的虚拟环境里执行这几个命令确认:

# 查看python命令的路径
which python
# 查看当前python版本
python --version
# 查看pip对应的Python版本
pip --version

你会发现python指向的是系统路径(比如/usr/bin/python),而pip指向的是虚拟环境的env/bin/pip,对应Python3.6。

解决方法

方法1:直接使用虚拟环境的python36命令

运行脚本的时候换成python36:

python36 -c "import numpy; numpy.show_config()"

这样就能正确加载虚拟环境里的numpy了。

方法2:修正虚拟环境里的python软链接

如果想继续用python命令,可以手动覆盖虚拟环境里的软链接:

# 先删除原有的python链接
rm /home/ec2-user/env/bin/python
# 创建新的链接指向虚拟环境的python36
ln -s /home/ec2-user/env/bin/python36 /home/ec2-user/env/bin/python

之后再运行python --version,应该显示Python3.6,这时候再导入numpy就正常了。

方法3:创建虚拟环境时强制覆盖

如果以后再创建虚拟环境,可以加上--always-copy参数,让virtualenv直接复制Python可执行文件而不是创建链接,避免这类问题:

virtualenv -p python36 --always-copy env

内容的提问来源于stack exchange,提问作者berlinguyinca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:23:38