2017-05-24 298 views
0

我試圖讓Emacs的flycheck與python語法錯誤檢查很好地協同工作。默認情況下它使用flake8,但我注意到最近flake8只報告樣式問題,當它應該產生與pyflakes相同的結果時。Flake8未能檢測到可被pyflakes檢測到的語法問題

作爲一個例子,我有一個簡單的Python腳本,它帶有錯誤的模塊名稱。

輸出的 $ flake8 so.py
$ cat so.py 

import os 

print(os.path) 

op.path() 

是空的,而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版本麥凱布:0.6.1,pycodestyle:2.3.1,pyflakes:1.5.0

Pyflakes版本:1.5.0

回答

1

當你想知道爲什麼Flake8 ISN不報告你認爲應該的東西,最好的路徑是利用--isolated標誌。

被上述ex.py,如果我做的文件內容:

❯❯❯ flake8 --isolated ex.py 
ex.py:5:1: F821 undefined name 'op' 

考慮到這一點,但看來你的配置是這裏的問題。