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

时间:2019-05-15 13:39:24

标签: python visual-studio-code vscode-settings pylint

我在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的其他错误仍然存​​在。

我应该如何解决此错误?

1 个答案:

答案 0 :(得分:1)

不建议在REPL之外使用import *,因为在这种情况下,您无法通过内省代码来分辨名称的名称。 datamodel可能以Pylint或语言服务器无法识别的某种时髦方式指定datamodel_file

对于这两个linter警告,这是因为您同时运行两个工具:Pylint和提供基本棉绒的Python语言服务器。如果要禁用一个Python语言服务器,请参阅docs on its settings

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