Python requests请求方法在PyCharm运行失败但Atom正常如何解决
问题代码
import requests response = requests.get('https://api.github.com/') print(response.url) # print status code print(response.status_code)
报错核心信息
TypeError: __init__() takes 1 positional argument but 2 were given
根因分析
- 最常见触发原因:PyCharm项目路径下存在和Python标准库重名的
queue.py自定义文件,urllib3初始化连接池时会优先调用你自定义的Queue类,该类构造函数没有设计接收maxsize参数的逻辑,传参时触发类型错误。Atom运行时使用的是全局环境,运行路径没有包含这个重名文件,所以可以正常执行。 - 次要原因:虚拟环境中requests和依赖的urllib3版本不匹配,部分跨版本组合存在参数调用不兼容的问题。
修复步骤
- 首先检查当前运行脚本所在的目录、项目根目录下是否存在
queue.py文件,若存在将其重命名为非重名名称(如custom_queue.py),同时删除同目录下的__pycache__缓存文件夹后重新运行脚本即可恢复正常。 - 若排查后无重名文件,在PyCharm终端激活对应项目虚拟环境后执行依赖升级命令:
pip install --upgrade requests urllib3
- 若升级后仍有报错,删除原有虚拟环境重新创建,全新安装requests依赖即可解决冲突。
内容的提问来源于stack exchange,提问作者Karan Gothwal
相关产品推荐
相关产品推荐

