为什么在使用 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]
这方面的一些问题:
- 我不明白为什么 VS Code/PyLint 认为这个变量是未定义的,因为我调试它时代码运行正常
- 为什么有 2 条错误信息?
- 我尝试通过以下方式禁用 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
.
我在 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]
这方面的一些问题:
- 我不明白为什么 VS Code/PyLint 认为这个变量是未定义的,因为我调试它时代码运行正常
- 为什么有 2 条错误信息?
- 我尝试通过以下方式禁用 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
.