是否可以使用 Pylint 忽略单个特定行?

问题描述 投票:0回答:6

我的标题中有以下行:

import config.logging_settings

这实际上改变了我的 Python 日志记录设置,但 Pylint 认为这是一个未使用的导入。我一般不想删除

unused-import
警告,所以是否可以忽略这一特定行?

我不介意这个项目有一个

.pylintrc
,所以更改配置文件的答案将被接受。

否则,类似的事情也会受到赞赏:

import config.logging_settings # pylint: disable-this-line-in-some-way
python pylint
6个回答
463
投票

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

或者为了减少冗长,禁用唯一的以下行(pylint 2.10+):

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

Pylint 的手册还有 更多示例

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


110
投票
import config.logging_settings # pylint: disable=W0611
这很简单,并且是针对该行的。

您可以而且应该使用更具可读性的形式:

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

13
投票
除了已接受的答案:

您可以重新启用错误检查添加

pylint: enable:SPECIFIC_ERROR


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

import time import datetime import os import sys # pylint: disable=import-error import serial # pylint: enable=import-error
这样您就可以忽略单行上的单个错误,而不必禁用检查整个文件中的错误


4
投票
查看

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
    

3
投票
我相信你正在寻找...

import config.logging_settings # @UnusedImport
请注意注释前的双空格,以避免遇到其他格式警告。

此外,根据您的 IDE(如果您使用的是 IDE),可能有一个选项可以添加正确的忽略规则(例如,在

Eclipse 中,按 Ctrl + 1,而光标位于警告上方) ,会自动建议 @UnusedImport

)。


0
投票
如果您想禁用

all 检查单行:

import config.logging_settings # pylint: disable=all


来自

文档

为了控制消息,pylint 接受以下值:

[...]
- 所有带有
all

 的检查

© www.soinside.com 2019 - 2024. All rights reserved.