Windows7 64位Python3环境中已装NumPy仍报ModuleNotFoundError
嘿,咱们来搞定你遇到的这个麻烦:明明用pip装了NumPy,Far Manager里运行脚本却提示ModuleNotFoundError,而且重装也没用,还怀疑和matplotlib有关。结合你的环境(Win7 64位、Python3.7.3 32位),咱们一步步排查修复:
1. 先确认Far Manager调用的Python是不是你装了NumPy的那个
有时候控制台的环境变量可能和你平时用的不一样——哪怕你只有一个Python版本。先在Far Manager的命令行里跑这两个命令:
python --version
pip --version
仔细看输出的路径,是不是都指向c:\program files (x86)\python37-32?如果python的路径不对,说明Far用的不是你装了NumPy的那个解释器。这时候你可以:
- 把正确的Python路径加到系统环境变量
PATH的最前面; - 或者在Far里直接用完整路径运行脚本:
"c:\program files (x86)\python37-32\python.exe" [path]\X.py
2. 检查site-packages目录的权限
Win7的Program Files (x86)默认权限很严,有时候控制台运行脚本时,可能读不到里面的NumPy文件。你可以试试:
- 右键Far Manager,选以管理员身份运行,再跑你的脚本,看能不能导入NumPy;
- 如果管理员模式可行,就给
c:\program files (x86)\python37-32\lib\site-packages文件夹加权限:右键→属性→安全→编辑→添加当前用户→勾选「完全控制」。
3. 修复matplotlib带来的依赖冲突
你怀疑是装matplotlib后出的问题,大概率是它安装时打乱了Python的依赖索引。咱们彻底清理重装试试:
- 先卸载两个库:
pip uninstall -y numpy matplotlib - 手动清理残留:删掉
c:\program files (x86)\python37-32\lib\site-packages下所有numpy-、matplotlib-开头的文件夹,还有__pycache__文件夹; - 按顺序重装(先装NumPy,再装matplotlib,避免依赖冲突):
pip install numpy==1.17.0 pip install matplotlib
4. 验证NumPy的文件是否真的存在
有时候pip显示已安装,但实际文件可能损坏或缺失。你直接打开c:\program files (x86)\python37-32\lib\site-packages,看看有没有numpy文件夹,里面的文件是不是完整的。如果是空的或者文件少了,那必须彻底卸载后重新安装。
如果以上都没用,你可以在Far里跑这段脚本,看看Python的搜索路径里有没有site-packages:
import sys print(sys.path)
如果输出里没有c:\program files (x86)\python37-32\lib\site-packages,说明Python的环境变量没配置对。你可以临时添加路径测试:
import sys sys.path.append("c:\program files (x86)\python37-32\lib\site-packages") import numpy
要是这样能导入,就把这个路径加到系统的PYTHONPATH环境变量里,以后就不会再出问题了。
内容的提问来源于stack exchange,提问作者Nick Kolyshkin

