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

Python3中requests.get失效:切换目录运行脚本报错求助

解决非当前目录运行Python脚本时requests.get的AttributeError问题

兄弟,我一眼就揪出问题根源了——你踩了Python模块命名冲突的大坑!

看报错回溯里这关键的一行:

File "/Users/pavel/Documents/Code/threading.py", line 10, in
url = requests.get(host,headers = headers)

这说明Python在尝试导入标准库的threading模块时,没找到系统自带的那个,反而加载了你自己写的threading.py文件!原因是当你在非当前目录运行脚本时,你的/Users/pavel/Documents/Code/目录被加入到了Python的模块搜索路径里,Python会优先搜索这个目录下的文件,于是就和标准库的threading重名冲突了。

更糟的是,你自己的threading.py里还用到了requests.get,这时候requests模块还没完成整个导入流程(因为它正卡在导入threading的环节),所以就抛出了AttributeError: module 'requests' has no attribute 'get'的错误——其实不是requests没有get方法,是导入流程被打断了。

解决方法非常简单:

  • 立刻重命名你的threading.py文件:别用和Python标准库模块一样的名字,比如改成my_threading_script.py或者其他你能记住的独特名字。如果你的主脚本里有导入这个文件的语句,记得同步修改导入的文件名。
  • (不推荐的备选方案)如果实在不想改名,可以在主脚本最开头调整Python的模块搜索路径,把系统库的路径放在最前面,确保优先加载标准库:
import sys
# 把你的Python标准库路径放到搜索列表最前面
sys.path.insert(0, '/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7')
# 再导入requests
import requests

这个问题和requests本身完全没关系,重装requests、改主脚本名都是没用的,核心就是避免自定义模块和标准库重名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:17:47