SyntaxError:mfs.cgi中的语法无效

时间:2012-12-28 08:45:38

标签: python cgi moosefs

我在RedHat服务器上运行基于Python的MooseFS CGI服务器,我觉得很奇怪 语法错误:

Traceback (most recent call last):
    File "/usr/sbin/mfscgiserv", line 300, in run_cgi
    execfile(self.file_name)
File "/usr/share/mfscgi/mfs.cgi", line 129
    return "%s%.1f%s" % (("~" if n != rn else ""),rn,s)
                            ^
SyntaxError: invalid syntax

这是从moosefs官方网站下载的正确文件,我找不到任何文件 关于它的错误。我的python版本是2.4.3。

2 个答案:

答案 0 :(得分:3)

失败的表达式使用conditional_expression中添加的python Python 2.5

您最好的选择是升级到支持的Python版本

答案 1 :(得分:2)

由于Abhijit已经说过你不能在python< 2.5中使用条件表达式,但是你可以用两种简单的方法解决这个问题:

(r != rn and "~") or ""

或者:

"~" * (r != rn)

第一个是安全的,因为"~"被视为True因此如果r != rn则保证and将成功,因此or不会评估第二个表达式。

第二个使用以下事实:字符串乘以1(或True)返回字符串本身,而字符串乘以0(或False)返回""(空字符串)。


修改 由于错误是由不在您控制范围内的文件生成的,因此不应修改其源代码。该库使用Python的2.5语法只是意味着它不支持Python 2.4.3,你必须更改库或升级你的python安装。

由于python2.4.x最后一次发布于2008年,我认为将python安装升级到python2.7.3是个好主意。这应该可以解决您的问题,并且您将获得更新版本的python的所有好处。