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

时间:2021-07-06 14:38:50

标签: python visual-studio-code pylance

我的项目中有以下行

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

1 个答案:

答案 0 :(得分:1)

你能不能改成:

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