2016-09-20 124 views
0

這個非常簡單的代碼:爲什麼Pylint說print('foo',end ='')是一個無效的語法?

#!/usr/bin/python3 
print('foo', end='') 

使pylint的不愉快(無論在Python2和Python3):

pylint ./pylint.py 
No config file found, using default configuration 
************* Module pylint 
E: 2, 0: invalid syntax (syntax-error) 

爲什麼?

+0

99.9%的機會:你忘記了前一行的右括號。 – TigerhawkT3

+0

我不確定你爲什麼要在Python 2上嘗試它,除非你導入了'print'函數。 – TigerhawkT3

+0

@Flippy - 它在技術上可以,但它總是以括號/括號/大括號結尾。 – TigerhawkT3

回答

4

運行pylint時出現此錯誤。但我的pylint只支持python2。所以出錯:

$ pylint foo.py 
No config file found, using default configuration 
************* Module foo 
E: 2, 0: invalid syntax (syntax-error) 

所以,我沒有pip3 install pylint

然後它的所有工作(或至少它讓過去的語法錯誤):

$ python3 -m pylint foo.py | head 
No config file found, using default configuration 
************* Module foo 
C: 1, 0: Black listed name "foo" (blacklisted-name) 
C: 1, 0: Missing module docstring (missing-docstring) 
..... 

在這裏看到的pylint的用於python2和3的詳細信息在一個系統:https://askubuntu.com/questions/340940/installing-pylint-for-python3-on-ubuntu

+0

好的,我使用'pylint。/ pylint.py'而不是'python3 -m pylint foo.py'。我認爲pylint可以讀取'#!/ usr/bin/python3'。 – roipoussiere

+0

表面上看不是 - 在答案中有一個shell腳本,我將它鏈接到「嗅探shebang」行,根據##行來運行正確的pylint。不知道pylint項目是否有這樣做的政策... – Spacedman

相關問題