Python 3.8导入requests模块执行简单程序报错是什么原因?
报错根因
你遇到的报错本质是模块命名冲突,和requests本身没有关系。
Python导入模块时会优先搜索当前工作目录、用户自定义路径下的文件,再搜索标准库、第三方库路径下的模块。从报错栈的最后一段可以看到,urllib3依赖的six模块尝试导入标准库的http相关组件时,实际加载的是你本地的/Users/redacted/Desktop/python/http1/http.py文件,而这个文件第一行就存在语法错误,最终导致整个导入链路失败。
解决步骤
- 将你本地命名为
http.py的文件重命名,注意不要使用和Python标准库、常用第三方库同名的文件名,比如可以改为http_test.py - 删除
http.py同目录下的__pycache__缓存目录,避免旧的缓存文件影响后续导入 - 重新执行你的GET请求代码即可
注意事项
后续编写Python文件时,避免使用http.py、requests.py、json.py这类和标准库/常用第三方库重名的文件名,否则都会触发类似的导入错误。
内容的提问来源于stack exchange,提问作者Johnny Sanabria
相关产品推荐
相关产品推荐

