6

test.py次の不適切な形式のコンテンツを含むファイルを作成した場合:

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

flake8次のようにコマンドラインからファイルを実行します。

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

次の 2 つのエラーのみが報告されます。

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

2 行目の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 パッケージに問題があると思っていました)、そこにいるユーザーの 1 人が、 flake82.5.4 には下位バージョンの が必要でpyflakesあると指摘しました 。ただし、その特定のバージョンをflake8介してapt、またはpip自動的にインストールすると、依存関係としてインストールされ、問題が解決するかどうかを確認する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 に答える