[python] 스크립트를 실행중인 Python 버전을 확인하려면 어떻게합니까?

스크립트를 해석하는 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!"
>>>


답변

사용 platformpython_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)