2012-12-28 12 views
2

에 잘못된 구문 내 레드햇 서버에 파이썬을 기반으로 MooseFS CGI 서버를 실행하고 나는 이상한 구문 오류 얻을 : 그것은 딱 맞는 파일이 moosefs offical 한에서 다운로드구문 에러 : mfs.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 

을 사이트에 대해 오류를 찾을 수 없습니다. 내 파이썬의 버전은 2.4.3입니다.

답변

2

로 업그레이드하는 것입니다,하지만 당신은 두 가지 간단한 방법으로이 문제를 해결할 수 있습니다

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

또는 : "~" 따라서 경우 True을 고려하고 있기 때문에

"~" * (r != rn) 

첫 번째는 안전합니다 r != rn이면 and이 성공하므로 or은 두 번째 표현식을 평가하지 않습니다. 0 (또는 False) 곱한 문자열 "" (빈 문자열)를 리턴하면서

두 번째는, 문자열 1 (또는 True) 곱한 사실 문자열 자체를 반환을 이용한다.


편집 : 오류가 컨트롤이 아닌 파일에 의해 생성되는 때문에, 당신은 소스 코드를 수정하지 않아야합니다. 라이브러리가 Python의 2.5 구문을 사용한다는 사실은 단순히 Python 2.4.3을 지원하지 않는다는 것을 의미하며 라이브러리를 변경하거나 Python 설치를 업그레이드해야합니다.

2008 년에 python2.4.x가 마지막으로 릴리스되었으므로 파이썬 설치를 python2.7.3으로 업그레이드하는 것이 좋습니다. 이렇게하면 문제가 해결되어 새로운 버전의 파이썬의 모든 이점을 누릴 수 있습니다.

+1

필자는 패키지를 분명히 제안하지 않으려합니다.이 패키지는 <2.5 버전과 호환되지 않는 구문을 가지고 있습니다. 그렇다면 다른 문제가 계속 될 수 있습니다. – Abhijit

+0

@Abhijit 네가 맞아! 나는 그것이 오류를 준 OP 코드가 아니라 라이브러리 자체라는 것을 깨닫지 못했습니다. 나는 이것을 지적하기 위해 나의 대답을 편집 할 것이다. – Bakuriu

+0

+1하여 설득력있는 음색으로 편집 된 답변을 표현하십시오. – Abhijit

3

실패한 표현식은 Python 2.5에 추가 된 파이썬 conditional_expression을 사용합니다. Abhijit은 이미 파이썬 < 2.5 조건식을 사용할 수 없습니다 말했듯이

가장 좋은 방법은 지원 파이썬 버전