스크립트를 해석하는 Python 인터프리터의 버전을 어떻게 확인할 수 있습니까?
답변
이 정보는 sys 모듈 의 sys.version 문자열에서 사용할 수 있습니다 .
>>> import sys
인간이 읽을 수있는 내용 :
>>> print(sys.version) # parentheses necessary in python 3.
2.5.2 (r252:60911, Jul 31 2008, 17:28:52)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)]
추가 처리 :
>>> sys.version_info
(2, 5, 2, 'final', 0)
# or
>>> sys.hexversion
34014192
Python 인터프리터의 최소 버전 요구 사항으로 스크립트를 실행하려면 코드에 다음을 추가하십시오.
assert sys.version_info >= (2, 5)
주요 및 부 버전 정보를 비교합니다. (= 마이크로 추가 0
, 1
등), 심지어 releaselevel (= 'alpha'
, 'final'
당신 등과 같은 튜플, 등). 그러나 특정 기능이 있는지 확인하고 그렇지 않은 경우 해결 방법 (또는 구제)을 확인하는 것이 “항상 덕”하는 것이 좋습니다. 때로는 기능이 최신 릴리스에서 사라져 다른 버전으로 대체 될 수 있습니다.
답변
명령 행에서 (대문자 ‘V’를 참고하십시오) :
python -V
이것은 ‘man python’에 문서화되어 있습니다.
답변
나는 sys.hexversion
이런 것들을 좋아한다.
http://docs.python.org/library/sys.html#sys.hexversion
>>> import sys
>>> sys.hexversion
33883376
>>> '%x' % sys.hexversion
'20504f0'
>>> sys.hexversion < 0x02060000
True
답변
가장 좋은 방법은 아마도 다음과 같습니다.
>>> import sys
>>> sys.version_info
(2, 6, 4, 'final', 0)
>>> if not sys.version_info[:2] == (2, 6):
... print "Error, I need python 2.6"
... else:
... from my_module import twoPointSixCode
>>>
또한 항상 간단한 시도로 가져 오기를 래핑 할 수 있으며 구문 오류가 발생합니다. 그리고 @Heikki의 지적에 따르면이 코드는 이전 버전의 Python과 호환됩니다.
>>> try:
... from my_module import twoPointSixCode
... except Exception:
... print "can't import, probably because your python is too old!"
>>>
답변
사용 platform
의python_version
다음 stdlib에서 :
>>> from platform import python_version
>>> print(python_version())
2.7.8
답변
다음과 같은 것을 넣으십시오.
#!/usr/bin/env/python
import sys
if sys.version_info<(2,6,0):
sys.stderr.write("You need python 2.6 or later to run this script\n")
exit(1)
스크립트 상단에
스크립트에있는 내용에 따라 대상보다 이전 버전의 python은 스크립트를로드하지 못할 수도 있으므로이 오류를보고하기에 충분하지 않습니다. 이 문제를 해결하려면 최신 코드로 스크립트를 가져 오는 스크립트에서 위의 코드를 실행할 수 있습니다.
답변
다음은 바로 종료되는 짧은 명령 줄 버전입니다 (스크립트 및 자동 실행에 적합).
python -c "print(__import__('sys').version)"
또는 메이저, 마이너 및 마이크로 :
python -c "print(__import__('sys').version_info[:1])" # (2,)
python -c "print(__import__('sys').version_info[:2])" # (2, 7)
python -c "print(__import__('sys').version_info[:3])" # (2, 7, 6)