2015-06-07 124 views
5

我使用的是使用pyflakes的SublimePythonIDE。 有一些,我想它忽略像錯誤:如何讓pyflakes忽略一些錯誤?

(E501) line too long 
(E101) indentation contains mixed spaces and tabs 

什麼最簡單的方法來做到這一點?

+1

最簡單的方法是避免這些錯誤。 – ZdaR

+0

@ZdaR我喜歡很長的一行 – user3571278

+5

不要**忽略'E101',因爲在嘗試運行代碼時幾乎肯定會遇到錯誤。 [PEP-8](https://www.python.org/dev/peps/pep-0008/#indentation)強烈建議使用4個空格。 – MattDMo

回答

7

配置在崇高插件幾乎總是使用相同的方法重複:請點擊Preferences -> Package Settings -> Plugin Name -> Settings-Default打開(意外驚喜)默認設置。該文件通常包含插件的所有可能設置,通常包含解釋每個插件的註釋。此文件無法修改,因此要自定義您打開的任何設置Preferences -> Package Settings -> Plugin Name -> Settings-User。我通常將默認設置的全部內容複製到用戶文件中,然後根據需要自定義,然後保存並關閉。

在這個特殊的插件的情況下,雖然它使用pyflakes(如廣告),這也使得使用pep8,一種風格檢查,使得使用非常相同的PEP-8官方的Python風格指南我在評論中提到的。這個知識是有用的,因爲pyflakes不使用特定的錯誤代碼,而pep8

因此,通過檢查插件的設置文件,我們找到一個"pep8_ignore"選項以及一個"pyflakes_ignore"。由於error codespep8到來,我們將使用該設置:

"pep8_ignore": [ "E501", // line too long 
       "E303", // too many blank lines (3) 
       "E402" // module level import not at top of file 
       ] 

請注意,代碼E121,E123,E126,E133,E226,E241,E242,E704和在默認情況下忽略,因爲它們不規則一致接受,PEP 8不執行。


關於排長:

有時候,排長隊是不可避免的。 79個字符的PEP-8的recommendation基於古老的歷史,終端監視器只有80個字符的屏幕,但由於以下幾個原因,它延續至今:與舊代碼向後兼容,某些設備仍在使用中這些限制看起來不錯,它使得在更寬的顯示器上更容易並排打開多個文件,並且它是可讀的(在編碼時應始終牢記在心)。如果您希望擁有90或100個字符的限制,那麼沒有問題(如果您的團隊/項目同意),但始終如此使用它,並且要注意其他人可能會使用不同的值。如果您想將pep8設置爲比其默認值80更大的值,請修改"pep8_max_line_length"設置。

有許多方法可以減少行的字符數保持在限制範圍內,或將長行分成多個較短的行。在您的例子在意見的情況:

flag, message = FacebookUserController.AddFBUserToDB(iOSUserId, fburl, fbsecret, code) 

你可以做兩件事情:

# shorten the module/class name 
fbuc = FacebookUserController 
# or 
import FacebookUserController as fbuc 
flag, message = fbuc.AddFBUserToDB(iOSUserId, fburl, fbsecret, code) 
# or eliminate it all together 
from FacebookUserController import AddFBUserToDB 
flag, message = AddFBUserToDB(iOSUserId, fburl, fbsecret, code) 
# split the function's arguments onto separate lines 
flag, message = FacebookUserController.AddFBUserToDB(iOSUserId, 
                fburl, 
                fbsecret, 
                code) 
# There are multiple ways of doing this, just make sure the subsequent 
# line(s) are indented. You don't need to escape newlines inside of 
# braces, brackets, and parentheses, but you do need to outside of them. 
1

正如其他人所建議的,可能注意警告。但在這些情況下,您不能將# NOQA添加到最終的違規行中。請注意0​​之前的兩個空格,因爲這也是一種將被投訴的風格。

如果pyflakes包裹在flake8中,允許忽略特定的錯誤。

例如在項目投產或添加到tox.ini文件:

[flake8] 
exclude = .tox,./build 
filename = *.py 
ignore = E501,E101 

這可能是與How do I get Pyflakes to ignore a statement?