¿Cómo usar flake8 para Python 3?
python-3.x (3)
Consulte: bugs.launchpad.net/pyflakes/+bug/989203
NB: Si bien este informe de error indica algún nivel de resolución, al probar la última versión de pyflakes 0.8.1
esta falta de anotaciones de Python 3 todavía existe.
Supongo que tendrías que presentar una nueva solicitud de función a 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:
^
ACTUALIZACIÓN ( 20140514 ):
Resulta que la respuesta real a este problema es ejecutar pyflakes
o flake8
en Python 3.x en lugar de Python 2.x. Que tiene sentido :)
Así que haz algo como esto:
/usr/bin/python3 -m pyflakes foo.py
En este fragmento de código,
def add(x:int, y:int) -> int:
return x + y
hay anotaciones de funciones que solo son compatibles después de Python 3.0
Cuando ejecuto flake8 para este código 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
Recibí el error de sintaxis no válida, pero debería ser una sintaxis válida. ¿Cómo puedo usar flake8 para verificar la sintaxis que solo se admite en Python 3.x?
Tengo la respuesta en reddit ( here ):
Utiliza cualquier flake8 que esté instalado en Python en tu ruta.
por lo que necesita instalar flake8 por pip3, no pip.
en OSX para mi,
pip3 install flake8
esto funciona para mi :)
Trabajó para 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