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

Python3.9 pipenv环境requests.packages.urllib3.util.retry导入报错

问题成因

这个导入报错和依赖是否安装、pipenv虚拟环境是否正常没有直接关系,核心原因是requests 2.16.0及以上版本调整了内部依赖的暴露逻辑,不再将urllib3的完整子模块路径挂载到requests.packages命名空间下,旧教程里常见的from requests.packages.urllib3.xxx导入写法已经不兼容新版本。
你看到的Import "requests.packages.urllib3.util.retry" could not be resolved. No quick fixes available.提示,除了实际导入路径错误之外,也有可能是代码编辑器(比如VS Code的Pylance插件)没有正确关联pipenv虚拟环境的解释器,导致静态解析失败出现误报。

修复方案

1. 替换导入语句(必改,解决实际运行报错)

直接将第13行的旧导入语句删除,替换为从urllib3直接导入Retry类即可:

# 注释或删除原有错误导入
# from requests.packages.urllib3.util.retry import Retry
# 替换为标准导入写法
from urllib3.util.retry import Retry

urllib3是requests的强制依赖,只要你安装了requests,urllib3就会被同步安装到虚拟环境中,不需要额外执行安装操作,这种导入方式也是目前兼容所有新版本requests的标准写法。

2. 修复编辑器静态检查误报(改完导入仍飘红时操作)

如果替换导入语句后代码可以正常运行,但编辑器仍然提示导入无法解析,是因为编辑器没有识别到pipenv虚拟环境的Python解释器,按以下步骤操作即可:

  • VS Code按快捷键Ctrl+Shift+P调出命令面板,输入Python: Select Interpreter
  • 在弹出的列表中选中当前项目pipenv虚拟环境对应的Python 3.9解释器
  • 重启编辑器后红标提示就会消失
额外注意事项

你的代码中DidYouKnow类定义了两个__init__方法,Python中类的同名方法会被后定义的版本覆盖,前面写的无参__init__永远不会被触发,如果后续需要无参实例化类会直接报错,可以根据需求合并两个初始化方法的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:09:44