Python导入requests模块(2.21.0版本)出现ImportError问题求助
解决requests导入时的ImportError问题
嘿,我一眼就揪出问题根源了——你自己的Python脚本和标准库模块重名了!
看错误日志里的关键行:
File "/Users/willward/Desktop/email.py", line 3, in
import requests.exceptions
你把自己的脚本命名成了email.py,而Python在导入标准库的email.parser(http.client模块的依赖)时,会优先加载当前工作目录下的email.py,而非系统自带的标准库模块。这直接触发了循环导入的死循环:
- 你导入
requests→requests依赖urllib3 urllib3需要http.client→http.client要导入email.parser- Python找到你的
email.py,但这个脚本里又导入了requests.exceptions,绕回起点 - 最终
urllib3的exceptions模块还没完全加载,就被requests引用,抛出ImportError: cannot import name 'HTTPError'
快速修复步骤
- 重命名你的脚本:把桌面上的
email.py改成其他名字,比如my_email_tool.py,一定要避开和Python标准库、第三方库同名的名称(比如email、requests、urllib3这类都不能用)。 - 清理缓存文件:检查脚本所在目录,删除生成的
email.pyc文件或者__pycache__文件夹,这些缓存文件可能还会干扰导入逻辑。 - 重新测试导入:打开Python交互式shell,再次运行:
import re import requests
这时候应该就能正常加载模块了。
顺便提一句,你之前卸载重装requests和urllib3的操作其实没必要,问题根本不在包本身,完全是脚本命名冲突搞出来的乌龙~
内容的提问来源于stack exchange,提问作者willward1
相关产品推荐
相关产品推荐

