是否可以忽略Pylint中的某一行?

我有以下行在我的标题:

import config.logging_settings

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

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

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

import config.logging_settings # pylint: disable-this-line-in-some-way
219500 次浏览

我相信你在找…

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的手册也有进一步的例子

一个维基记录了所有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

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