Flake8 未能检测到 pyflakes 可以检测到的语法问题
Flake8 failing to detect syntax issues that can be detect by pyflakes
我正在尝试让 Emacs 的 flycheck 与 python 语法错误检查一起很好地工作。默认情况下它使用 flake8,但我注意到最近 flake8 只报告样式问题,而它应该产生与 pyflakes 相同类型的结果。
例如,我有一个简单的 python 脚本,但模块名称错误。
$ cat so.py
import os
print(os.path)
op.path()
$ flake8 so.py
的输出为空,而 pyflakes 的输出为
$ pyflakes so.py
so.py:5: undefined name 'op'
我的 flake8 配置,如果重要的话:
[flake8]
max-line-length = 96
ignore = E123,E701,E126,F821
如果重要的话,我正在使用 Linux。
Flake8版本:版本3.3.0 mccabe:0.6.1,pycodestyle:2.3.1,pyflakes:1.5.0
Pyflakes 版本:1.5.0
当您想知道为什么 Flake8 没有报告您认为应该报告的内容时,最好的方法是利用 --isolated
标志。
上面的文件内容在ex.py
如果我这样做:
❯❯❯ flake8 --isolated ex.py
ex.py:5:1: F821 undefined name 'op'
考虑到这一点,您的配置似乎确实是这里的问题。
我正在尝试让 Emacs 的 flycheck 与 python 语法错误检查一起很好地工作。默认情况下它使用 flake8,但我注意到最近 flake8 只报告样式问题,而它应该产生与 pyflakes 相同类型的结果。
例如,我有一个简单的 python 脚本,但模块名称错误。
$ cat so.py
import os
print(os.path)
op.path()
$ flake8 so.py
的输出为空,而 pyflakes 的输出为
$ pyflakes so.py
so.py:5: undefined name 'op'
我的 flake8 配置,如果重要的话:
[flake8]
max-line-length = 96
ignore = E123,E701,E126,F821
如果重要的话,我正在使用 Linux。
Flake8版本:版本3.3.0 mccabe:0.6.1,pycodestyle:2.3.1,pyflakes:1.5.0
Pyflakes 版本:1.5.0
当您想知道为什么 Flake8 没有报告您认为应该报告的内容时,最好的方法是利用 --isolated
标志。
上面的文件内容在ex.py
如果我这样做:
❯❯❯ flake8 --isolated ex.py
ex.py:5:1: F821 undefined name 'op'
考虑到这一点,您的配置似乎确实是这里的问题。