如何让Pyflakes忽略一条语句?

152 投票
9 回答
68561 浏览
提问于 2025-04-16 12:01

我们很多模块的开头都是这样的:

try:
    import json
except ImportError:
    from django.utils import simplejson as json  # Python 2.4 fallback.

...而且这是整个文件中唯一的Pyflakes警告:

foo/bar.py:14: redefinition of unused 'json' from line 12

我该怎么让Pyflakes忽略这个警告呢?

(通常我会去看看文档,但这个链接坏了。如果没有人能回答,我就自己去看源代码。)

9 个回答

9

是的,不幸的是,dimod.org 现在无法访问,所有相关的内容也都没了。

从 pyflakes 的代码来看,感觉它是为了方便用作“嵌入式快速检查器”而设计的。

如果你想实现忽略某些功能,你需要自己写代码来调用 pyflakes 的检查器。

这里有个思路可以参考:http://djangosnippets.org/snippets/1762/

需要注意的是,上面的代码片段只适用于同一行上的注释。如果你想忽略一整块代码,可能需要在那块代码的文档字符串里加上 'pyflakes:ignore',然后根据 node.doc 来过滤。

祝你好运!


我使用 pocket-lint 来进行各种静态代码分析。这里是为了忽略 pyflakes 而在 pocket-lint 中做的修改:https://code.launchpad.net/~adiroiban/pocket-lint/907742/+merge/102882

56

我知道这个问题之前有人问过,也已经有了答案。

不过我想分享一下我通常使用的方法:

try:
    import json
    assert json  # silence pyflakes
except ImportError:
    from django.utils import simplejson as json  # Python 2.4 fallback.
236

如果你能使用 flake8,这个工具结合了 pyflakes 和 pep8 检查器,那么在代码行的末尾加上

# NOQA

(这里的空格很重要——代码末尾和 # 之间要有两个空格,#NOQA 之间要有一个空格)就可以告诉检查器忽略这一行的任何错误。

撰写回答