Почему я получаю 2 сообщения об ошибках при написании кода Python с использованием кода Visual Studio? - PullRequest
0 голосов
/ 15 мая 2019

У меня много моделей данных в каталоге 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 Ответ

1 голос
/ 18 мая 2019

Использование import * не рекомендуется за пределами REPL из-за ситуаций, подобных этой, когда вы не можете понять из интроспекции кода, откуда должно появиться имя.Скорее всего, datamodel указывает datamodel_file каким-то странным образом, который Pylint или языковой сервер не могут выяснить.

Что касается двух предупреждений линтера, то это потому, что вы запускаете два инструмента одновременно: Pylintи языковой сервер Python, который обеспечивает базовый линтинг.Если вы хотите отключить языковой сервер Python, посмотрите документы в его настройках .

Но лучший способ решить эту проблему - просто не использовать import *.Либо выполните import datamodel, а затем используйте datamodel.datamodel_file (или сделайте что-то вроде import datamodel as dm; dm.datamodel_file).Или вы можете использовать from datamodel import datamodel_file.

...