2017-08-11 97 views
0

請參考附件截圖。AutoPEP8,Anaconda,Sublime Text 3不一致的錯誤報告

我正在scrapy管道上工作。我在Anaconda/AutoPep8中使用Sublime Text 3。我剛從ST2移到了沒有AutoPep8或Anaconda的地方。

巨大的白點告訴我,這條線有無效的語法。我無法弄清楚問題出在哪裏,所以我複製了這一行,並將它粘貼在當時是空文件的第1行。語法錯誤仍然顯示,表明它沒有與前一行遺漏右括號的問題。

然後我編了一些類似的代碼,第3行,第6行,& 9.正如你所看到的,它們都通過了召集。 (我不關心其他小錯誤,他們不是問題)。

然後我把整個方法都粘貼到這個新文檔上,現在,正如你所看到的,即使是嫌疑人的行(22)也會通過。

然後,我複製並粘貼了整個班級,再次,如您所見,第49行,現在所抱怨的代碼現在不會引起任何問題。

我嘗試使用命令調色板 - PEP8:預覽更改(請參閱https://github.com/wistful/SublimeAutoPEP8),但沒有發生任何事情。

我也嘗試了右鍵菜單Anaconda> Autoformat PEP8 Errors但E501錯誤(行太長)被忽略,並且if語句中假定的語法錯誤沒有發生。

注意:上週我第一次開始使用AutoPep8修復E501錯誤時,我注意到在腳本的一半左右,它突然停止報告錯誤。不知道這是否相關。

當ST3啓動時,我也會得到這個錯誤:https://github.com/DamnWidget/anaconda/issues/514。然而,共識似乎是,如果Sublime即使在你點擊這個錯誤之後仍能正常工作,那麼沒有什麼可擔心的。我只是提到這個給你儘可能多的,所以你可以幫忙。

我也嘗試將len('advocate')轉換爲字符串,但語法錯誤依然存在。

這是怎麼回事? Anaconda,AutoPep8,ST3或我的代碼中是否存在錯誤? (不知道Build版本號如何與版本號對齊)Anaconda,AutoPep8版本號未知,但我拿到了它們(我不知道如何使用版本號)不到兩週前。 enter image description here

+0

你'if'聲明沒有做任何事情。如果它不需要做任何事情就需要在那裏,使用'pass'。錯誤在於它期望縮進塊。 –

+0

@ 13smith_oliver:也許我不清楚。 1.沒有縮進塊錯誤。我見過這些。這是一個無效的語法錯誤。 2.第49行和第22行的代碼完全一樣,它們沒有標記出任何錯誤。這是不一致的。要麼是一個錯誤,要麼不是。如果是這樣,爲什麼?如果不是,這是一個錯誤嗎?來自「簡明英漢詞典」我可能是錯的,但我認爲我的陳述是做某事的。它是這樣說的:「如果倡導者的確有三個長度,那麼繼續在字典中做這些任務,否則就不要。」 –

回答

1

那麼,它花了很多耐心的谷歌搜索和VSCode的比較測試,但我有一個驚人的簡單答案:我應該把'==',而不是'='!是的,親愛的朋友們,這是基本的Python。 =表示分配,==表示相等或比較。我的if是後一種類型,因爲您無法在if語句中進行分配。現在VSCode並沒有讓這個更清楚,我認爲他們都使用Pylint,但至少讓我知道這可能是一個有效的錯誤,不管我是否理解。 (當然,除非我知道更多Pylint的開發者...是的,不太可能)。

榮譽吉恩馬克Gawron,(誰必須與克林貢皇帝)給我的答案是:http://gawron.sdsu.edu/python_for_ss/course_core/book_draft/programming_intro/boolean_results.html