是否可以使用 Pylint 忽略单个特定行?
- 2025-03-18 08:54:00
- admin 原创
- 42
问题描述:
我的标题中有以下一行:
import config.logging_settings
这实际上改变了我的 Python 日志记录设置,但 Pylint 认为这是一个未使用的导入。我一般不想删除unused-import
警告,那么是否可以忽略这一特定行?
我不会介意.pylintrc
为这个项目做一个,所以改变配置文件的答案会被接受。
否则,类似这样的事情也会受到赞赏:
import config.logging_settings # pylint: disable-this-line-in-some-way
解决方案 1:
消息控制记录在pylint FAQ中:
是否可以本地禁用某条特定消息?
是的,此功能已添加到 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 消息及其代码。
解决方案 2:
import config.logging_settings # pylint: disable=W0611
这很简单,并且特定于该线路。
您可以并且应该使用更易读的形式:
import config.logging_settings # pylint: disable=unused-import
解决方案 3:
除了可接受的答案外:
您可以重新启用错误检查添加pylint: enable:SPECIFIC_ERROR
例如,我的代码中有这个:
import time
import datetime
import os
import sys
# pylint: disable=import-error
import serial
# pylint: enable=import-error
这样,您可以忽略一行上的单个错误,而不必禁用对整个文件的该错误的检查
解决方案 4:
我相信您正在寻找...
import config.logging_settings # @UnusedImport
请注意注释前的双倍空格,以避免触发其他格式警告。
此外,根据您的 IDE(如果您正在使用),可能有一个选项可以添加正确的忽略规则(例如,在Eclipse中,当光标位于警告上方时按Ctrl
+ ,将自动建议)。1
`@UnusedImport`
解决方案 5:
签出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
扫码咨询,免费领取项目管理大礼包!