Mac OSX环境Python版本配置异常导致requests库导入失败求助
问题原因与解决方案
1. 报错含义解释
ModuleNotFoundError: No module named 'requests'报错的核心原因是:运行代码时调用的Python解释器,和安装requests库的pip对应的Python解释器不属于同一个环境。你在终端查到的requests 2.25.1是安装在Python 3.9的环境中,但运行代码时调用的是残留的Python 3.6解释器,这个环境中没有安装requests,因此会报找不到模块的错误。
2. 路径配置含义
你看到的这段内容是系统环境变量PATH的取值:
[path: /Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin]
- 系统查找可执行命令时,会按照PATH中的路径顺序从左到右搜索,找到第一个匹配的命令就直接执行
- 你虽然把Python 3.9的路径放在了3.6之前,但卸载Python 3.6时没有清理干净,3.6的bin目录仍然存在,部分场景(比如Sublime编辑器的构建系统没有读取终端的PATH配置)下会优先调用到3.6的解释器,这也是你终端中import偶尔成功、运行代码时不稳定报错的原因
3. 验证与修复步骤
- 先确认pip绑定的Python版本:在终端执行
pip -V,查看输出的路径是否对应Python 3.9.5,确认requests确实安装在3.9环境中 - 确认Sublime运行代码时调用的解释器:在你的代码开头添加以下内容,运行后查看输出的路径:
import sys print(sys.executable)
- 如果输出的是Python 3.6的路径,说明Sublime的构建系统配置错误,需要新建自定义构建系统:
- 打开Sublime,依次点击 Tools > Build System > New Build System
- 把默认内容替换为以下配置,注意
cmd中的路径要和你终端执行which python3得到的3.9路径一致:
{ "cmd": ["/Library/Frameworks/Python.framework/Versions/3.9/bin/python3", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python" }- 保存配置为
Python3.9.sublime-build,之后运行代码时选择这个构建系统即可
- 可选清理残留:直接手动删除
/Library/Frameworks/Python.framework/Versions/3.6目录,避免后续再出现调用旧版本的问题
内容的提问来源于stack exchange,提问作者Lauchlan Robertson
相关产品推荐
相关产品推荐

