如何在特定文件中禁用Pep8错误?

105

我试过了

#:PEP8 -E223

或者

# pep8: disable=E223

我本以为第二个方法可以奏效,但似乎不起作用。

你有什么想法可以解决这个问题吗?

8个回答

126
据我所知,你不能这样做。你可以在用户范围或项目范围内禁用错误或警告。请参阅文档
相反,你可以在行末使用# noqa注释来跳过特定的行(参见补丁136)。当然,这将跳过所有PEP8错误。
主要作者反对源文件噪音,因此他们建议不包括# pep8注释。

请注意,还有nopep8,它是等效的。 noqa不进行质量保证)是在1.4.1版本中添加的,以支持人们在运行pyflakespep8


12
谢谢。但在我的情况下,我不想跳过特定的一行 :-( 在我看来,在文件开头添加类似于“#pep8:disable E221”的内容要比指定每一行要忽略更加清晰明了。但这只是我的观点! 感谢您的回答。 - Flows

51

尝试在代码行的末尾(两个空格后)添加# nopep8。因此,如果代码行是:

h=1+2+3+4+5+6+func( "hello","world")

那么为了忽略该行上许多Pep8错误,它变成了:

然后,为了忽略该行上大量的Pep8错误,它变为:

h=1+2+3+4+5+6+func( "hello","world")  # nopep8

1
似乎可以将其与特定的错误类型组合,例如 #nopep8:E501 - Bilal Akil
4
延长一行来表明你想要忽略其长度的讽刺。 - Blundell

31

让我补充一些可能是在之前所有答案发布之后引入的内容。

如果您使用Flake8,您可以通过添加特定的注释来忽略特定行中引发的特定规则违例。

# noqa: F401
在行末,F401 这里是一个错误代码示例。有关所有违规代码的列表,请参见http://flake8.pycqa.org/en/3.5.0/user/error-codes.htmlhttps://pycodestyle.readthedocs.io/en/latest/intro.html#error-codes 您还可以通过添加

来忽略整个文件中的所有违规内容

# flake8: noqa

文件中的任何位置。

参考:http://flake8.pycqa.org/en/3.5.0/user/violations.html


1
谢谢您,先生。虽然这并没有回答我的确切问题,但是在搜索您所回答的内容时,这对我很有帮助 :) 在一行中禁用代码正是我和其他人需要的! - rjurney

29
您可以使用--ignore标志来禁用您上面提到的错误。
pep8 --ignore=E223 file_name.py

针对多个错误

pep8 --ignore=E223,E501 file_name.py

要深入了解其他标志,请扫描 http://pep8.readthedocs.org/en/latest/intro.html


2
这并没有回答问题(虽然它可能有用)。 - Jeppe

3

flake8-putty 绝对是最好的方法 - 因为它允许更细粒度的控制,可以禁用哪些文件的哪些内容。 - alecxe
很遗憾,与flake8版本3不兼容,也没有修复的计划:https://github.com/jayvdb/flake8-putty/issues/14 - Carl

2
如果你使用的是 Flake8 3.7.0+ 版本,你可以使用 --per-file-ignores 选项来忽略整个文件中特定的警告。
命令行用法:
flake8 --per-file-ignores='project/__init__.py:F401,F403 setup.py:E121'

这也可以在配置文件中指定:
[flake8]
per-file-ignores =
    __init__.py: F401,F403
    setup.py: E121
    other/*: W9

1
你可以使用配置文件(例如setup.cfg)来完成这个操作:
[tool:pytest]
pep8ignore =
    *.py E501 W503
    api.py E402                <=============== HERE
    doc/* ALL
pep8maxlinelength = 120
flakes-ignore =
    UnusedImport
filterwarnings =
  ignore::DeprecationWarning

0
LiClipse的IDE中,您可以在首选项的代码分析中添加--ignore=E501
如果有人使用类似Eclipse的IDE,这是一种方便的方法。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接