적어도 특정 버전의 Python이 필요한 Python 스크립트가있는 경우 이전 버전의 Python을 사용하여 스크립트를 시작할 때 정상적으로 실패하는 올바른 방법은 무엇입니까?
오류 메시지를 발행하고 종료 할 수있을 정도로 일찍 제어하려면 어떻게해야합니까?
예를 들어, ternery 연산자 (2.5의 새로운 기능)와 "with"블록 (2.6의 새로운 기능)을 사용하는 프로그램이 있습니다. 스크립트가 가장 먼저 호출하는 간단한 인터프리터 버전 검사기 루틴을 작성했습니다. 대신, 내 루틴이 호출되기 전에 파이썬 컴파일 중에 스크립트가 실패합니다. 따라서 스크립트 사용자는 매우 모호한시 낙스 오류 역 추적을 볼 수 있습니다. 이는 잘못된 버전의 Python을 실행하는 경우에 불과하다는 사실을 전문가가 추측해야합니다.
파이썬 버전을 확인하는 방법을 알고 있습니다. 문제는 이전 버전의 Python에서 일부 구문이 잘못되었다는 것입니다. 이 프로그램을 고려하십시오 :
import sys
if sys.version_info < (2, 4):
raise "must use python 2.5 or greater"
else:
# syntax error in 2.4, ok in 2.5
x = 1 if True else 2
print x
2.4 미만으로 실행하면이 결과를 원합니다.
$ ~/bin/python2.4 tern.py
must use python 2.5 or greater
이 결과가 아닙니다.
$ ~/bin/python2.4 tern.py
File "tern.py", line 5
x = 1 if True else 2
^
SyntaxError: invalid syntax
(동료를위한 채널링)