4

我的项目中有以下行

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找不到模块。

这个警告可能是什么?

在此处输入图像描述

4

1 回答 1

5

你能把它改成:

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 无法用这些代码正确推测。

于 2021-07-07T07:18:56.177 回答