是否可以忽略带有pylint的单个特定线?

时间:2015-03-03 10:18:33

标签: python pylint

我的标题中有以下行:

import config.logging_settings

这实际上改变了我的python日志设置,但是pylint认为它是一个未使用的导入。我一般不想删除unused-import警告,所以可以忽略这一条特定的行吗?

我不介意为此项目设置.pylintrc,因此将接受更改配置文件的答案。

否则,这样的事情也将受到赞赏:

import config.logging_settings # pylint: disable-this-line-in-some-way

5 个答案:

答案 0 :(得分:132)

Pylint消息控件记录在the Pylint manual

  

是否可以在本地禁用特定消息?

     

是的,此功能已添加到Pylint 0.11中。这可以通过添加
来完成   #pylint: disable=some-message,another-one
  在所需的块级别或所需代码行的末尾

您可以使用消息代码或符号名称。

本手册还有an example

a wiki记录所有pylint消息及其代码。

答案 1 :(得分:36)

import config.logging_settings # pylint: disable=W0611

这很简单,并且特定于该行。

正如sthenault所指出的,你可以而且应该使用更易读的形式:

import config.logging_settings # pylint: disable=unused-import

答案 2 :(得分:5)

我相信你正在寻找的是......

import config.logging_settings  # @UnusedImport

请注意评论前的双倍空格,以避免遇到其他格式化警告。

此外,根据您的IDE(如果您正在使用它),可能还有一个选项可以添加正确的忽略规则(例如在eclipse中按 Ctrl 1 ,当光标结束时,警告将自动建议@UnusedImport

答案 3 :(得分:3)

检出https://github.com/PyCQA/pylint/tree/master/pylint/checkers中的文件。我没有找到比Ctrl + F-ing这些文件或使用Github搜索功能更好的从消息中获取错误名称的方法:

如果消息是“模块中没有名称...”,请使用搜索:

No name %r in module %r repo:PyCQA/pylint/tree/master path:/pylint/checkers

或者,为了得到更少的结果:

"No name %r in module %r" repo:PyCQA/pylint/tree/master path:/pylint/checkers

Github将向您显示:

"E0611": (
    "No name %r in module %r",
    "no-name-in-module",
    "Used when a name cannot be found in a module.",

您可以执行以下操作:

from collections import Sequence # pylint: disable=no-name-in-module

答案 4 :(得分:2)

除了接受的答案:

您可以重新启用错误检查添加 pylint: enable:SPECIFIC_ERROR

例如,我的代码中有这个:

import time
import datetime
import os
import sys
# pylint: disable=import-error
import serial
# pylint: enable=import-error

这样您就可以忽略一行中的单个错误,而不必禁用检查整个文件中的错误