如何将flake8用于Python 3?

2024-05-19 20:53:59 发布

您现在位置:Python中文网/ 问答频道 /正文

在这个代码片段中

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

有些函数注释仅在Python3.0之后才受支持

当我为这个python代码执行flake8时:

$ 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中支持的语法?


Tags: 函数代码pyaddreturnflake8def语法
3条回答

关于reddit(here),我有答案:

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

所以你需要用pip3来安装flake8,而不是pip。

在OSX上对我来说

pip3 install flake8

这对我有用。:)

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

NB:虽然此错误报告指出了某种级别的解决方案,但测试最新版本的pyflakes0.8.1这种缺少Python 3注释的情况仍然存在。

我想你得另外向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:
         ^

更新20140514):

事实证明,这个问题的实际答案是运行pyflakesflake8 在Python3.x而不是Python2.x下

所以做这样的事情:

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

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

为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

相关问题 更多 >