如何设置Pylint只进行部分检查

13
我正在尝试设置Pylint仅执行特定的检查项而不是其他的,比如只检查W0601和W0612。我已经尝试在我的pylint.rc文件的[MESSAGES CONTROL]部分中使用“enable=”行,但似乎并没有达到我想要的效果。我正在使用Pylint 0.25.1版本。
3个回答

14

看起来是rc文件解析的一个错误。

命令行上顺序很重要(未记录在文档中?),因此您需要先禁用再启用:

pylint xyz.py --disable R,C,W,E --enable W0601,W0612

但是通过--generate-rcfile生成的配置文件不能正确反映,而使用--rcfile参数也无法正常工作……这可能是个bug,例如#36584

在配置文件中添加disable选项会禁用所有消息,即使在命令行上先使用disable再使用enable。

[MESSAGES CONTROL]
disable=R,C,W,E
enable=W0601,W0612

14

在 Pylint >= 0.27 中,有一个新的--disable=all选项。

pylint --disable=all --enable=W0201

或者

pylint -d all -e W0201

您可以将其放置在rc文件中,但正如aneroid指出的那样,仍然存在一个错误,这意味着您无法启用除命令行以外的任何消息,因此:

[MESSAGES CONTROL]
disable=all

然后

pylint -e W0201

就能正常工作了。


1
@aneroid:你说得对,生成/读取配置文件可能存在顺序问题;而且命令行中的顺序很重要,这一点应该有所记录。我已经根据你提到的票计划并评论了它。
@peter-graham,所以在#36584票被修复之前,你可能需要使用命令行来实现这个目标。我建议:
pylint --disable-all --enable=W0601,W0612

3
如果我尝试使用 --disable-all,Pylint 会给我“没有这样的选项”的错误。不过,pylint --disable=I,C,R,W,E,F --enable=W0601,W0612 是可以工作的。 - Peter Graham
使用--disable=all代替--disable-all - kissgyorgy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接