如果我使用以下格式不正确的内容创建文件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网站上发布a related questio n时(我认为问题最初是使用Emacs包),其中一位用户指出flake8
2.5.4 requires a lower version of pyflakes
。但是,安装flake8
到apt
或pip
会自动安装pyflakes
的特定版本作为依赖项,而我无法获得pyflakes
的旧版本看看是否能解决问题(也许这完全是另一个问题)。
我在这里做错了什么,或者这是一个错误?
答案 0 :(得分:5)
E501
在某个地方被忽略了。它位于~/.config/flake8
或tox.ini
,setup.cfg
或.flake8
中的本地目录中。在其中一个文件中的某个位置,您可能会发现类似于:
[flake8]
ignore = E501
(您也可以在其他错误代码中看到它。)
这是不 Flake8中的一个错误,几乎可以肯定是你环境中的一个错误造成的。您看到E501
的原因是您通过在命令行上提供--ignore
来覆盖配置文件设置。