Skip to main content
 首页 » 编程设计

python之flake8 不报告太长的行

2025年05月04日16zhujiabin

如果我创建一个文件 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 

当我发布 a related questio 时在 Emacs Stack Exchange 网站上(我最初认为问题出在 Emacs 包上),其中一位用户指出 flake8 2.5.4 requires a lower version of pyflakes .但是,通过 apt 或 pip 安装 flake8 会自动安装该特定版本的 pyflakes 作为依赖项,我有无法获得旧版本的 pyflakes 以查看是否可以解决问题(也许这完全是另一个问题)。

我是不是做错了什么,或者这是一个错误?

请您参考如下方法:

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

[flake8] 
ignore = E501 

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

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