为什么在使用 Visual Studio 代码编写 Python 代码时会收到 2 条错误消息?

Why do I get 2 error messages when writing Python code using Visual Studio Code?

我在 datamodel/ 目录中有很多数据模型,我不想一个一个导入它们,所以我这样做了:

from datamodel import *  # pylint:disable=unused-wildcard-import

然后我做了:

datamodel_file.DataModelClass(db_server)

我在 VS Code 中遇到以下错误:

Undefined variable 'datamodel_file' (pylint(undefined-variable)[22,27]
Undefined variable: 'datamodel_file' (Python(undefined-variable)[22,27]

这方面的一些问题:

  1. 我不明白为什么 VS Code/PyLint 认为这个变量是未定义的,因为我调试它时代码运行正常
  2. 为什么有 2 条错误信息?
  3. 我尝试通过以下方式禁用 pylint 消息作为快速尝试并查看会发生什么情况: datamodel_file.DataModelClass(db_server) # pylint:disable=undefined-variable 这具有禁用来自 pylint 的错误的效果,但来自 Python 的其他错误仍然存​​在。

我该如何解决这个错误?

不鼓励在 REPL 之外使用 import *,因为在这种情况下,您无法通过内省代码来判断名称应该来自何处。有可能 datamodel 以 Pylint 或语言服务器无法理解的一些时髦方式指定 datamodel_file

至于两个 linter 警告,那是因为您同时使用了 运行 两个工具:Pylint 和提供基本 linting 的 Python 语言服务器。如果您想禁用 Python 语言服务器,请参阅 docs on its settings.

但解决这个问题的最好方法就是不使用 import *。要么执行 import datamodel,然后使用 datamodel.datamodel_file(或执行类似 import datamodel as dm; dm.datamodel_file 的操作)。或者您可以使用 from datamodel import datamodel_file.