我有以下行在我的标题:

import config.logging_settings

这实际上改变了我的Python日志设置,但Pylint认为这是一个未使用的导入。我不想在一般情况下删除未使用的导入警告,所以是否可以忽略这一行?

我不介意这个项目有一个.pylintrc,所以改变配置文件的答案将被接受。

否则,像这样的东西也会受到赞赏:

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

我相信你在找…

import config.logging_settings  # @UnusedImport

注意注释前的双空格,以避免碰到其他格式警告。

另外,根据您的IDE(如果您正在使用IDE),可能有一个选项可以添加正确的忽略规则(例如,在Eclipse中,当光标在警告上方时,按Ctrl + 1将自动提示@UnusedImport)。


import config.logging_settings # pylint: disable=W0611

这很简单,对这条直线来说是特定的。

你可以也应该使用更易读的形式:

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

Pylint消息控件在Pylint手册中有文档:

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

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

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

例如,

def test():
    # Disable all the no-member violations in this function
    # pylint: disable=no-member
    ...
    # pylint: enable=no-member

只适用于某一行:

global VAR  # pylint: disable=global-statement

或者为了不那么冗长,禁用下面的ONLY行(pylint 2.10+):

# pylint: disable-next=global-statement
global VAR

Pylint的手册中还有更多的例子。

有一个wiki文档记录了所有Pylint消息及其代码。


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

如果消息是“No name…”在模块…"中,使用搜索:

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

除了接受的答案:

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

例如,在我的代码中有这样的代码:

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

通过这种方式,您可以忽略单行上的单个错误,而不必在整个文件中禁用检查该错误