Как уже говорили другие, вы можете предоставить аргумент отключения, чтобы отключить конкретное сообщение. Я хотел бы уточнить это.
Вот синтаксис для отключения нескольких сообщений и для предоставления нескольких аргументов , который не был сразу очевиден для меня из его поиска:
"python.linting.pylintArgs": [
"--max-line-length=80",
"--disable=W0142,W0403,W0613,W0232,R0903,R0913,C0103,R0914,C0304,F0401,W0402,E1101,W0614,C0111,C0301"
]
Вы заявили, что стали видеть больше ошибок, когда отключили одно сообщение. Это может иметь смысл в соответствии с документацией :
Python в коде Visual Studio по умолчанию настроен на использование набора
правила linting, которые дружат с наибольшим количеством Python
Разработчики:
- Включить все сообщения об ошибках (E) и фатальных (F).
- Отключить все сообщения Конвенции (C) и Refactor (R).
- Отключить все предупреждения (W), кроме следующих:
- недоступен (W0101): код недоступен
- дубликат ключа (W0109): дубликат ключа% r в словаре
- ненужная точка с запятой (W0301): ненужная точка с запятой
- глобальная переменная не назначена (W0602): используется глобальная переменная для% r, но назначение не выполняется
- неиспользуемая переменная (W0612): неиспользуемая переменная% r
- binary-op-exception (W0711): Исключение для перехвата является результатом двоичной операции "% s"
- строка плохого формата (W1302): неверная строка формата
- Аномальная обратная косая черта в строке (W1401): Аномальная обратная косая черта в строке
- bad-open-mode (W1501): «% s» не является допустимым режимом для открытия
Эти правила применяются через следующие аргументы по умолчанию, передаваемые Pylint:
--disable=all
--enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode
Эти аргументы передаются всякий раз, когда
python.linting.pylintUseMinimalCheckers
установлено на true
(по умолчанию).
Если вы указываете значение в pylintArgs
или используете конфигурацию Pylint
файл (см. следующий раздел), тогда pylintUseMinimalCheckers
неявно установлено на false
.
Другими словами, PyLint предположительно довольно слабый по умолчанию в VS Code, показывая только сообщения об ошибках и несколько выбранных предупреждений. Но когда вы вручную устанавливаете pylintArgs
на что-то, pylintUseMinimalCheckers
игнорируется, открывая шлюзы для всех сообщений. Возможно, поэтому отключение одного сообщения привело к тому, что было показано больше сообщений. Опять же, я не уверен, почему вы видели сообщения неиспользованного импорта в первую очередь, так как они должны были подавляться по умолчанию в соответствии с документацией.
На самом деле, в настоящее время это не работает: python.linting.pylintUseMinimalCheckers": true
(для меня, в данный конкретный момент времени, но, надеюсь, это хорошо для вас, будущий читатель). Чтобы получить тот же эффект, мне пришлось вручную установить pylintArgs
на значение, которое предполагалось установить автоматически:
"python.linting.pylintArgs": [
"--disable=all",
"--enable=F,E,unreachable,duplicate-key,unnecessary-semicolon,global-variable-not-assigned,unused-variable,binary-op-exception,bad-format-string,anomalous-backslash-in-string,bad-open-mode"
]
БОНУС: Вот объяснение списка отключенных сообщений, которые я использую , как показано выше в пункте 1. В основном это взято из здесь :
# Disabled messages
# Pointless
# W0142 = *args and **kwargs support
# W0403 = Relative imports
# W0613 = Unused argument
# W0232 = Class has no __init__ method
# R0903 = Too few public methods
# R0913 = Too many arguments
# C0103 = Invalid name
# R0914 = Too many local variables
# C0304 = Final newline missing
#
# PyLint's module importation is unreliable
# F0401 = Unable to import module
# W0402 = Uses of a deprecated module
# E1101 = Module x has no y member
#
# Already an error when wildcard imports are used
# W0614 = Unused import from wildcard
#
# Stricter messages that can be disabled until everything else has been fixed
# C0111 = Missing docstring
# C0301 = Line too long