6

如果我创建一个test.py包含以下格式错误的内容的文件:

import re
long_string = "foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo"
class Foo():
    pass

并从命令行运行flake8文件,如下所示:

$ flake8 --max-line-length=79 test.py

只报两个错误:

test.py:1:1: F401 're' imported but unused
test.py:3:1: E302 expected 2 blank lines, found 0

max-line-length未报告第二行的违规行为。

完全是偶然的(我正在测试是否会尊重任何命令选项),我发现如果我添加一个这样的忽略选项:

$ flake8 --max-line-length=79 --ignore=E302 test.py

然后报行长度违例

test.py:1:1: F401 're' imported but unused
test.py:2:80: E501 line too long (97 > 79 characters)

我在 Ubuntu 16.04 上,我的flake8版本信息是:

2.5.4 (pep8: 1.7.0, mccabe: 0.2.1, pyflakes: 1.1.0) CPython 3.5.1+ on Linux

当我在 Emacs Stack Exchange 站点上发布一个相关问题时(我最初认为问题出在 Emacs 包上),那里的一位用户指出 flake82.5.4 需要较低版本的pyflakes. 但是,flake8通过安装aptpip自动安装该特定版本pyflakes作为依赖项,我无法获得旧版本来pyflakes查看是否可以解决问题(也许这完全是另一个问题)。

我在这里做错了什么,还是这是一个错误?

4

1 回答 1

10

E501在某处被忽略。它位于 、~/.config/flake8或 中的本地目录中tox.inisetup.cfg.flake8。在其中一个文件中的某个地方,您可能会发现类似于:

[flake8]
ignore = E501

(您也可能在其他错误代码中看到它。)

不是Flake8 中的错误,几乎可以肯定是您的环境中导致此问题的原因。您看到的原因是因为您通过在命令行上E501提供来覆盖配置文件设置。--ignore

于 2016-06-04T12:50:48.100 回答