我试图在Pylint 0.21.1中禁用警告C0321(“单行中有多个语句”——我经常将具有短单行结果的if语句放在同一行上)(如果有问题:astng 0.20.1, common 0.50.3,和Python 2.6.6 (r266:84292, 2010年9月15日,16:22:56))。
我尝试在Pylint配置文件中添加disable=C0321,但Pylint坚持报告它。这一行的变体(如disable=0321或disable=C321)被标记为错误,因此Pylint能够正确地识别该选项。它只是忽略它。
这是一个Pylint错误,还是我做错了什么?有办法解决这个问题吗?
我真的很想摆脱这些噪音。
从Pylint v. 0.25.3开始,您可以使用符号名称来禁用警告,而不必记住所有这些代码编号。例如:
# pylint: disable=locally-disabled, multiple-statements, fixme, line-too-long
这种风格比神秘的错误代码更有指导意义,也更实用,因为新版本的Pylint只输出符号名称,而不是错误代码。
符号名称和代码之间的对应关系可以在这里找到。
disable注释可以插入到它自己的行中,将disable应用到同一块中后面的所有内容。或者,可以将它插入要应用的行末尾。
如果Pylint输出“本地禁用”消息,你可以通过在上面的例子中首先包含禁用local -disabled来摆脱它们。
我在使用Eclipse时遇到了这个问题,解决方法如下:
在pylint文件夹(例如C:\Python26\Lib\site-packages\pylint)中,按住Shift键,右键单击并选择打开该文件夹中的windows命令。类型:
lint.py --generate-rcfile > standard.rc
这就创建了标准。Rc配置文件。在记事本中打开它,在[消息控制]下,取消注释
disable=并添加你想禁用的消息ID,例如:
disable=W0511, C0321
保存文件,然后在Eclipse→Window→Preferences→PyDev→*pylint中,在参数框中输入:
--rcfile=C:\Python26\Lib\site-packages\pylint\standard.rc
现在它应该工作了……
你也可以在你的代码顶部添加一个注释,由Pylint解释:
# pylint: disable=C0321
Pylint消息代码。
在参数框中添加例如——disable-ids=C0321不起作用。
所有可用的Pylint消息都存储在字典_messages中,它是Pylint .utils. messageshandlermixin类实例的属性。运行Pylint时,使用参数——disable-ids=…(至少没有配置文件),这个字典最初是空的,在Pylint (Pylint .utils. messageshandlermixin .check_message_id())中引发KeyError异常。
在Eclipse中,你可以在Pylint控制台中看到这个错误消息(windows*→显示视图→控制台,在控制台图标旁边的控制台选项中选择Pylint控制台)。