How to use flake8 for Python 3 ?

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

NB: Whilst this bug report indicates some level of resolution, testing the latest version of pyflakes 0.8.1 this lack of Python 3 Annotations still exists.

I guess you'd have to file a separate new feature request to 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 (20140514):

As it turns out the actual answer to this problem is to run pyflakes or flake8 under Python 3.x instead of Python 2.x. It makes sense :)

So do something like this:

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

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


I've got the answer on reddit(here):

It uses whatever flake8 is installed in the Python in your path.

so you need to install flake8 by pip3, not pip.

on OSX for me,

pip3 install flake8

this works for me. :)