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

Python requests调用报takes 1 positional argument but 2错误如何解决

故障原因与修复方案

故障原因

核心报错为urllib3初始化连接池队列时,向队列类构造方法传入了maxsize参数,但队列类仅支持无参构造,触发参数不匹配错误,常见诱因如下:

  • requests与urllib3版本不兼容:旧版requests未适配新版urllib3的内部实现,或当前使用的urllib3版本存在内部逻辑bug。
  • 队列类被篡改:
    1. 运行目录或Python搜索路径下存在与标准库queue.py同名的自定义文件,覆盖了标准库队列实现,且自定义的Queue类不支持maxsize构造参数
    2. 环境中第三方库的猴子补丁(如协程框架的自动补丁、自定义网络适配补丁)修改了urllib3默认使用的队列类,替换后的队列类无maxsize入参设计
  • 依赖冲突:虚拟环境中存在多版本urllib3共存,加载时逻辑混乱导致初始化异常。

可行修复方案

  • 方案1:安装官方验证的兼容版本组合
    执行以下命令卸载现有依赖后安装稳定适配版本:
pip uninstall -y requests urllib3
pip install requests==2.31.0 urllib3==2.0.7

该组合适配Python3.8及以上版本,经过大量生产环境验证无兼容性问题。

  • 方案2:排查清理同名文件
    检查脚本运行目录、Python全局路径下是否存在名为queue.py的自定义文件,同时删除对应目录下的__pycache__缓存文件夹,之后重新运行代码测试。
  • 方案3:显式指定队列类实现
    如果确认是补丁修改了队列类导致的问题,可在代码入口处显式重置urllib3的队列类为标准库实现:
from queue import Queue
import urllib3.connectionpool
urllib3.connectionpool.HTTPConnectionPool.QueueCls = Queue
  • 方案4:重建干净虚拟环境
    删除当前异常的虚拟环境,重新创建全新的虚拟环境后仅安装所需的requests依赖,消除多版本依赖冲突的影响。

内容的提问来源于stack exchange,提问作者Rajesh P S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:15:03