使用 VisualStudio+ Python -- 如何处理“覆盖 stdlib 模块”Pylance(reportShadowedImports) 警告?

问题描述 投票:0回答:3

在 VS Code 中运行 ipynbs 时,我开始注意到 Pylance 关于标准库导入的警告。我正在使用 conda 虚拟环境,我相信警告与此相关。使用 glob 库的示例如下:

 "env\Lib\glob.py" is overriding the stdlib "glob" modulePylance(reportShadowedImports)

到目前为止,我的笔记本按预期运行,但我很好奇这个警告是否表明布局不佳,或者只是明显表明“仅供参考,您没有使用 python 的基本安装”。

我已经关闭了 linting,但问题仍然存在。我对错误“reportShadowedImports”的搜索几乎没有返回任何结果。

python visual-studio conda pylance
3个回答
30
投票

搜索一无所获的原因是因为这项检查是最近才实施的(参见Github)。我遇到了和你一样的问题,因为 Micropython/Circuitpython 中的

code.py
也覆盖了 stdlib 中的模块“代码”。

解决方案很简单,尽管您随后会放松此特定检查。只需将

reportShadowedImports
添加到您的 pyright 配置即可。对于 VS Code,这会将其添加到
.vscode/settings.json
:

{
  "python.languageServer": "Pylance",
  [...]
  "python.analysis.diagnosticSeverityOverrides": {
      "reportShadowedImports": "none"
  },
  [...]
}

8
投票

如果你的文件名与 stdlib python 模块同名 - 例如“datetime.py” - 就会出现这个问题。

最好避免将文件命名为与 stdlib 模块相同的名称,因此在这种情况下,最好的操作是选择不同的名称。


0
投票

在 VSCode 中打开用户设置:

打开命令面板(使用 F1 或 Ctrl+Shift+P) 输入“打开设置” 您会看到几个选项,选择“打开用户设置 (JSON)”

此错误可能是由于 venv 创建的 python 位于工作空间文件夹中导致的识别错误。

请注意,如果您的 venv 在您的项目文件夹中,只需使用以下设置将其排除(venv 无论您的虚拟环境名称是什么)

settings.json"python.analysis.exclude": ["venv"]

© www.soinside.com 2019 - 2024. All rights reserved.