【问题标题】:flake8 not reporting on lines that are too longflake8 没有报告太长的行
【发布时间】:2016-06-03 12:43:31
【问题描述】:

如果我创建了一个文件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 question 时(我最初认为问题出在 Emacs 包上),那里的一位用户指出 flake8 2.5.4 requires a lower version of pyflakes。但是,通过aptpip 安装flake8 会自动安装该特定版本的pyflakes 作为依赖项,并且我无法获得pyflakes 的旧版本以查看是否可以解决问题(也许这完全是另一个问题)。

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

【问题讨论】:

    标签: python pyflakes flake8


    【解决方案1】:

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

    [flake8]
    ignore = E501
    

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

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

    【讨论】:

    • 好吧,我现在觉得自己很愚蠢。我在之前的工作中将ignore = E501 添加到了我的~/.config/flake8。最近我通过添加max-line-length = 80 更新了我的配置,但保留了ignore 行,没有意识到E501 对应于什么...我假设当我添加--ignore=E302 作为命令行选项时,我是这覆盖了~/.config/flake8 中的ignore 选项。感谢您的帮助!
    • 这正是你所做的。当我早些时候回答并打算提到这一点时,我很着急。
    猜你喜欢
    • 2022-01-25
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2016-01-22
    相关资源
    最近更新 更多