VS Code показывает сообщение об ошибке в инструкции print в python 2.7

Я использую VS Code Version 1.19.3 с Python 2.7 в Windows.

Недавно pylint (анализатор кода) "E1601:print statement used" сообщение об ошибке "E1601:print statement used"

Но я не знаю, почему! Кто-нибудь может мне помочь?

Правило печати корректно, насколько мне известно!

Это ошибка или функция отсутствует?

Приветствую вас

enter image description here

Ответ 1

Предупреждение исходит из pylint, который является очень полезным инструментом для нетипизированного языка со свободным синтаксисом, например python. Так как вы программируете в python 2.x, печать абсолютно корректна, я предлагаю вам поместить файл в корень вашего репо с именем .pylintrc и использовать его для настройки pylint.

Чтобы отключить предупреждение печати и оставить все остальное по умолчанию, введите эти две строки в файл .pylintrc:

[MESSAGES CONTROL]
disable=print-statement

Вам также необходимо указать Visual Studio Code, чтобы использовать файл конфигурации, открыв рабочее пространство или пользовательские настройки и добавив следующее:

{
     "python.linting.enabled": true,
     "python.linting.pylintEnabled": true,
     "python.linting.pylintArgs": [
          "--rcfile=/path/to/.pylintrc"
     ]
}

Больше вариантов

Чтобы получить представление о доступных параметрах конфигурации, откройте терминал/приглашение и запустите эту команду, чтобы сгенерировать образец файла конфигурации:

pylint --generate-rcfile > sample_pylintrc

Ответ 2

Проблема в том, что переход от оператора печати к функции печати не очень помогает. Таким образом, кажется, что это некоторая ошибка в VS Code Python module (2018.1 (01 февраля 2018)), так как после этого обновления я нашел ту же проблему в своем VS Code в моих старых проектах

bug screenshot

Я нашел исправленную ошибку на своем github

PS: vscode-python изменил параметры pylint с 2018 года.1. Чтобы вернуть прежнее поведение, вы можете отключить параметр python.linting.pylintUseMinimalCheckers для рабочей области или для пользовательского пространства.

Ответ 3

это не ошибка, а просто PyLint жалуется на эти устаревшие заявления. PyLint также будет жаловаться на отсутствие пробелов перед запятыми, такие ошибки стиля.

PyLint должен предупредить вас о возможных проблемах. Ваш код сломается при запуске python 3, поэтому он предупреждает вас, прежде чем это произойдет.

Обратите внимание, что print - это оператор в python 2.x (который объясняет это сообщение) и стал функцией в python 3.x.

Исправьте его, изменив на:

print("test")

Так как это не tuple, он отлично работает и делает то же самое для всех версий python, и PyLint перестанет жаловаться.

вы также можете полностью избавиться от PyLint: Windows 10 - код Visual Studio - удаление pylint (не уверен, если это хорошая идея)