【问题标题】:Pylance: Import "requests.packages.urllib3.util.retry" could not be resolved from sourcePylance:无法从源解析导入“requests.packages.urllib3.util.retry”
【发布时间】:2021-09-17 04:56:01
【问题描述】:

我的项目中有以下行

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 模块。

这个警告是什么?

【问题讨论】:

    标签: python visual-studio-code pylance


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

    【讨论】:

      猜你喜欢
      • 2022-11-19
      • 2021-04-18
      • 2021-04-23
      • 1970-01-01
      • 2022-07-28
      • 1970-01-01
      • 2021-03-23
      • 2021-03-24
      • 2021-08-23
      相关资源
      最近更新 更多