2014-05-12 7 views
19

In diesem Code-Schnipsel,Wie verwende ich flocke8 für Python 3?

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

gibt es Funktion Anmerkungen, die erst nach Python unterstützt 3.0

Als ich flake8 für diesen Python-Code ausführen:

$ 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 

bekam ich die ungültige Syntax Fehler, aber es sollte gültige Syntax sein. Wie kann ich mit flake8 die Syntax überprüfen, die nur in Python 3.x unterstützt wird?

+0

Siehe: https://bugs.launchpad.net/pyflakes/+bug/989203 –

Antwort

12

See: https://bugs.launchpad.net/pyflakes/+bug/989203

NB: Während dieser Fehlerbericht zeigt ein gewisses Maß an Auflösung, testet die neueste Version von Pyflakes 0.8.1 dieser Mangel an Python 3 Anmerkungen noch existiert.

Ich denke, Sie müssten eine separate neue Feature-Anfrage an pyflakes.

pyflakes Bugs

$ 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: 
     ^

UPDATE():

Es stellt sich die tatsächliche Antwort, um dieses Problem pyflakes oder flake8 unter Python 3.x ist anstelle von Python laufen 2.x Es macht Sinn :)

So etwas tun:

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

See: http://codepad.org/9BKxSZaD

+0

Danke, ich habe einen Fehlerbericht eingereicht: https://bugs.launchpad.net/pyflakes/+bug/1318497 – Cody

+0

Ich habe das Feedback von Pyflakes bekommen. Wir müssen pyflakes in Python 3 ausführen, um diesen Fehler zu beseitigen. Das heißt, Pyflakes in Python 2 können nicht für Python 3-Skripte verwendet werden. – Cody

+0

Das macht eigentlich Sinn! Nicht sicher, warum ich nicht daran gedacht habe! Ich werde die Antwort aktualisieren, um dies zu berücksichtigen! Vielen Dank! –

1

Ich habe die Antwort auf reddit bekam (here):

Es verwendet, was auch immer flake8 ist im Python in deinem Pfad installiert.

so müssen Sie durch PIP3 (auf OSX für mich) installieren flake8,

pip3 install flake8 

das für mich arbeitet. :)