我的标题中有以下行:
import config.logging_settings
这实际上改变了我的 Python 日志记录设置,但 Pylint 认为这是一个未使用的导入。我一般不想删除
unused-import
警告,所以是否可以忽略这一特定行?
我不介意这个项目有一个
.pylintrc
,所以更改配置文件的答案将被接受。
否则,类似的事情也会受到赞赏:
import config.logging_settings # pylint: disable-this-line-in-some-way
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 消息及其代码。
import config.logging_settings # pylint: disable=W0611
这很简单,并且是针对该行的。您可以而且应该使用更具可读性的形式:
import config.logging_settings # pylint: disable=unused-import
您可以重新启用错误检查添加
pylint: enable:SPECIFIC_ERROR
import time
import datetime
import os
import sys
# pylint: disable=import-error
import serial
# pylint: enable=import-error
这样您就可以忽略单行上的单个错误,而不必禁用检查整个文件中的错误
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
import config.logging_settings # @UnusedImport
请注意注释前的双空格,以避免遇到其他格式警告。此外,根据您的 IDE(如果您使用的是 IDE),可能有一个选项可以添加正确的忽略规则(例如,在
Eclipse 中,按 Ctrl + 1,而光标位于警告上方) ,会自动建议 @UnusedImport
)。
all 检查单行:
import config.logging_settings # pylint: disable=all
文档:
为了控制消息,pylint 接受以下值:[...]
的检查
- 所有带有all