web-dev-qa-db-ja.com

Python 3でflake8を使用する方法は?

このコードスニペットでは、

def add(x:int, y:int) -> int:
    return x + y

python 3.0の後にのみサポートされる関数アノテーションがあります

これに対してflake8を実行すると、pythonコード:

$ flake8 7.3.py -vv
checking 7.3.py
def add(x: int, y: int) -> int:
return x + y
7.3.py:1:11: E901 SyntaxError: invalid syntax

無効な構文エラーが発生しましたが、有効な構文である必要があります。 flake8を使用して、Python 3.xでのみサポートされている構文を確認するにはどうすればよいですか?

27
Cody

参照: https://bugs.launchpad.net/pyflakes/+bug/9892

NB:このバグレポートはある程度の解決策を示していますが、最新バージョンのpyflakesをテストしています0.8.1この欠如Python 3注釈はまだ存在しています。

Pyflakesに個別の新機能リクエストを提出する必要があると思います。

pyflakesバグ

$ cat - > foo.py
def add(x:int, y:int) -> int:
    return x + y
^D
$ pyflakes --version
0.8.1

$ pyflakes foo.py
foo.py:1:10: invalid syntax
def add(x:int, y:int) -> int:
         ^

[〜#〜]更新[〜#〜]20140514):

Pythonの代わりにPython 3.xの下でpyflakesまたはflake8を実行することです。 = 2.x.理にかなっています:)

したがって、次のようにします。

/usr/bin/python3 -m pyflakes foo.py

参照: http://codepad.org/9BKxSZaD

14
James Mills

Reddit( ここ )で答えがあります:

パスのPythonにインストールされているflake8を使用します。

したがって、pipではなく、pip3でflake8をインストールする必要があります。

oSXでは私のために、

pip3 install flake8

これは私にとってはうまくいきます。 :)

6
ZyusAn

mac + py2 + py3 + venvで動作しました:

pip install flake8
flake8 --version
3.5.0 (mccabe: 0.6.1, pycodestyle: 2.3.1, pyflakes: 1.5.0) CPython 2.7.14 on Darwin

pip3 install flake8
python3 -m flake8 --version
3.5.0 (mccabe: 0.6.1, pycodestyle: 2.3.1, pyflakes: 1.6.0) CPython 3.6.1 on Darwin
python3 -m flake8 --exclude migrations --max-line-length=121
2
Legolas Bloom

Python3のflake8を使用していることを確認する必要があります。 Linuxでは次のようにします。

Sudo pip uninstall flake8
Sudo pip3 install flake8
1

Y'allはおそらく 仮想環境python3 -m venv venv; source venv/bin/activate)...そのように、 'python'と 'pip'はデフォルトで必要なものを使用します...ただ言うだけです。

0
Tom Hundt