このコードスニペットでは、
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でのみサポートされている構文を確認するにはどうすればよいですか?
参照: https://bugs.launchpad.net/pyflakes/+bug/9892
NB:このバグレポートはある程度の解決策を示していますが、最新バージョンのpyflakesをテストしています0.8.1
この欠如Python 3注釈はまだ存在しています。
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
Reddit( ここ )で答えがあります:
パスのPythonにインストールされているflake8を使用します。
したがって、pipではなく、pip3でflake8をインストールする必要があります。
oSXでは私のために、
pip3 install flake8
これは私にとってはうまくいきます。 :)
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
Python3のflake8を使用していることを確認する必要があります。 Linuxでは次のようにします。
Sudo pip uninstall flake8
Sudo pip3 install flake8
Y'allはおそらく 仮想環境 (python3 -m venv venv; source venv/bin/activate
)...そのように、 'python'と 'pip'はデフォルトで必要なものを使用します...ただ言うだけです。