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

Pylance提示requests.packages.urllib3.util.retry导入无法解析但代码正常运行的原因是什么

Pylance提示找不到Retry模块的原因及解决方案

警告产生的核心原因

  • requests.packages.urllib3是requests库为了兼容多版本urllib3设计的运行时动态映射命名空间,不存在对应的静态文件目录结构。Pylance作为静态类型检查工具,仅会基于实际文件路径做模块检索,无法识别运行时才生效的导入重定向逻辑,因此会抛出找不到模块的错误。
  • 代码可以正常运行的原因是:requests在初始化阶段会主动将requests.packages.urllib3路径映射到其实际依赖的urllib3库路径上,Python解释器在运行时可以正常解析这个导入路径,所以Retry相关功能不会受到影响。

解决方法

  • 方案1(推荐):改用标准的urllib3导入写法,完全兼容原有功能,同时解决Pylance报错:
from requests import Session
from requests.adapters import HTTPAdapter
# 直接从urllib3导入,替换原有的requests.packages路径导入
from urllib3.util.retry import Retry

requests = Session()

retry = Retry(connect=8, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retry)
requests.mount("http://", adapter)
requests.mount("https://", adapter)
  • 方案2(临时兼容):如果不想修改导入路径,可以在导入行末尾加静态检查忽略标记,让Pylance跳过该行检查:
from requests.packages.urllib3.util.retry import Retry # type: ignore

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 08:24:02