微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pylance:无法从源解析导入“requests.packages.urllib3.util.retry”

如何解决Pylance:无法从源解析导入“requests.packages.urllib3.util.retry”

我的项目中有以下行

from requests.packages.urllib3.util.retry import Retry

requests 相关的一切都没有问题,即使是重试

from requests import Session
from requests.adapters import HTTPAdapter
from requests.packages.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)

但由于某种未知原因,Pylance 抱怨找不到 Retry 模块。

这是什么警告?

enter image description here

解决方法

你能不能改成:

from urllib3.util import Retry

Pylance 没那么聪明。这是 packages.py 文件中的内容:

for package in ('urllib3','idna','chardet'):
    locals()[package] = __import__(package)
    # This traversal is apparently necessary such that the identities are
    # preserved (requests.packages.urllib3.* is urllib3.*)
    for mod in list(sys.modules):
        if mod == package or mod.startswith(package + '.'):
            sys.modules['requests.packages.' + mod] = sys.modules[mod]

Pylance 无法正确推测这些代码。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。