2016-09-20 739 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

相关问题