答案 0 :(得分:10)
正如其他人所说,您可以提供disable参数来禁用特定消息。我想详细说明。
以下是用于禁用多条消息并提供多个参数的语法,对我来说,通过谷歌搜索它并不立即显而易见:
"python.linting.pylintArgs": [
"--max-line-length=80",
"--disable=W0142,W0403,W0613,W0232,R0903,R0913,C0103,R0914,C0304,F0401,W0402,E1101,W0614,C0111,C0301"
]
您说,禁用一条消息后,您开始看到更多错误。根据the documentation,这实际上可能是有道理的:
Visual Studio代码中的Python默认配置为使用一组 对最大数量的Python友好的规则规则 开发人员:
- 启用所有错误(E)和致命(F)消息。
- 禁用所有约定(C)和重构(R)消息。
- 禁用除以下内容以外的所有警告(W)消息:
- 无法访问(W0101):无法访问的代码
- 重复键(W0109):字典中的重复键%r
- 不必要的分号(W0301):不必要的分号
- global-variable-not-assigned(W0602):对%r使用global,但未完成分配
- 未使用变量(W0612):未使用变量%r
- binary-op-exception(W0711):捕获异常是二进制“%s”操作的结果
- 错误格式字符串(W1302):无效的格式字符串
- 字符串中的反斜杠(W1401):字符串中的反斜杠
- 错误打开模式(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点所示。它主要来自here:
# 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
答案 1 :(得分:6)
"python.linting.pylintArgs": [
"--disable=C0111"
],
您还可以按消息类型(例如--disable=W
)禁用。
www.pylintcode.info是一个很好的参考,其中列出了消息ID和消息类型。
答案 2 :(得分:3)
在您的VS代码设置(CTRL+COMMA
)
"python.linting.pylintArgs": [
"--disable=W0614"
],
有关更多建议,请访问:https://github.com/DonJayamanne/pythonVSCode/issues/570
答案 3 :(得分:1)
在文件顶部的行中添加以下内容将删除该错误...并确保程序中重复的行(如果是的话)将其删除。
# pylint: disable=unused-wildcard-import, method-hidden
# pylint: enable=too-many-lines
答案 4 :(得分:0)
对于简单的test.py,我没有修改设置,而是仅应用于我使用的那个文件 #pylint:disable = W0614 将此行放在文件顶部,然后pylint自动识别它。
这消除了100条未使用的进口警告
您可以像这样继续禁用
# pylint: disable=missing-module-docstring
# pylint: disable=missing-class-docstring
# pylint: disable=missing-function-docstring
# pylint: disable=wildcard-import
# pylint: disable=W0614
答案 5 :(得分:0)
我使用 pylint
Ctrl+P
:Python Select Linter
> 选择pylint
unused-import
) 导入的未使用的 PrimaryKeyConstraintungrouped-imports
)wrong-import-position
)wrong-import-order
)之前line-too-long
)Ctrl+P
:工作区设置 JSON
{
"python.linting.pylintArgs": [
"--disable=wrong-import-order,wrong-import-position,unused-import,ungrouped-imports,line-too-long"
],
}
或使用设置 ui
Ctrl+P
:工作区设置
搜索python.linting.pylintArgs
Add Item
或 edit item
存在。