스크립트를 실행하고 있는 Python 버전을 확인하려면 어떻게 해야 합니까?
스크립트를 실행하고 있는 Python 인터프리터의 버전을 확인하려면 어떻게 해야 합니까?
이 정보는 모듈의 문자열로 사용할 수 있습니다.
>>> 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
및릴리스 레벨(, ))도 사용할 수 있습니다.'alpha'
,'final'
을 사용법단, 특정 기능이 있는지 여부를 체크하고 없는 경우 회피책(또는 구제책)을 강구하는 것이 거의 항상 좋습니다.새로운 릴리스에서는 기능이 없어지고 다른 릴리스로 대체되는 경우가 있습니다.
명령줄(대문자 'V' 참조):
python -V
이것은 'man python'에 기록되어 있습니다.
IPython 콘솔에서
!python -V
stdlib에서 를 사용합니다.
from platform import python_version
print(python_version())
# 3.9.2
난 이런 거 좋아해.
>>> 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
>>>
또한 Import는 항상 간단한 시도만으로 래핑할 수 있으므로 구문 오류를 발견할 수 있습니다.그리고 @Heikki의 지적에 따르면, 이 코드는 훨씬 더 오래된 버전의 python과 호환될 것이다.
>>> try:
... from my_module import twoPointSixCode
... except Exception:
... print "can't import, probably because your python is too old!"
>>>
예를 들어 다음과 같습니다.
#!/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은 스크립트를 로드하지 못할 수 있으므로 이 오류를 보고할 수 없습니다.이 문제를 해결하려면 보다 최신 코드를 사용하여 스크립트를 Import하는 스크립트로 위의 작업을 수행할 수 있습니다.
다음은 바로 종료되는 짧은 명령줄 버전입니다(스크립트 및 자동 실행 지원).
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)
★★★★★★★★★★★★★★★★ six
과 같이할 수.
import six
if six.PY2:
# this is python2.x
else:
# six.PY3
# this is python3.x
import sys
sys.version.split(' ')[0]
sys.version은 원하는 것을 제공합니다.첫 번째 숫자를 선택합니다.
말한 는 체크할 수 .sys.version_info
(단, 2.0까지는 표시되지 않았기 때문에 이전 버전을 지원하려면 sys 모듈의 다른 버전 속성을 확인해야 합니다).
그러나 이전 버전의 Python에서는 사용할 수 없는 Python 언어 기능을 파일에 사용하지 않도록 주의해야 합니다.예를 들어, 이것은 Python 2.5 이상에서 허용됩니다.
try:
pass
except:
pass
finally:
pass
이전 버전의 Python에서는 사용할 수 없습니다. OR을 제외한 다른 버전에서는 사용할 수 없기 때문입니다.따라서 이전 Python 버전과의 호환성을 위해 다음을 작성해야 합니다.
try:
try:
pass
except:
pass
finally:
pass
이미 여러 답변에서 현재 python 버전을 쿼리하는 방법을 제안하고 있습니다.버전 요건을 프로그래밍 방식으로 확인하려면 다음 두 가지 방법 중 하나를 사용합니다.
# Method 1: (see krawyoti's answer)
import sys
assert(sys.version_info >= (2,6))
# Method 2:
import platform
from distutils.version import StrictVersion
assert(StrictVersion(platform.python_version()) >= "2.6")
CPython 1.0~3.7b2, Pypy, Jython 및 Microphython에서 실행하는 방법은 다음과 같습니다.이것은 현대 코드로 하는 방법이라기보다 호기심에 가깝다.http://stromberg.dnsalias.org/ ~ strombrg / scriptons / ~ which it it it it 。이것은 여러 버전의 파이썬에서 코드 조각을 동시에 테스트하는 스크립트입니다.그래서 어떤 파이썬 기능이 어떤 버전의 파이썬과 호환되는지 쉽게 알 수 있습니다.
via_platform = 0
check_sys = 0
via_sys_version_info = 0
via_sys_version = 0
test_sys = 0
try:
import platform
except (ImportError, NameError):
# We have no platform module - try to get the info via the sys module
check_sys = 1
if not check_sys:
if hasattr(platform, "python_version"):
via_platform = 1
else:
check_sys = 1
if check_sys:
try:
import sys
test_sys = 1
except (ImportError, NameError):
# just let via_sys_version_info and via_sys_version remain False - we have no sys module
pass
if test_sys:
if hasattr(sys, "version_info"):
via_sys_version_info = 1
elif hasattr(sys, "version"):
via_sys_version = 1
else:
# just let via_sys remain False
pass
if via_platform:
# This gives pretty good info, but is not available in older interpreters. Also, micropython has a
# platform module that does not really contain anything.
print(platform.python_version())
elif via_sys_version_info:
# This is compatible with some older interpreters, but does not give quite as much info.
print("%s.%s.%s" % sys.version_info[:3])
elif via_sys_version:
import string
# This is compatible with some older interpreters, but does not give quite as much info.
verbose_version = sys.version
version_list = string.split(verbose_version)
print(version_list[0])
else:
print("unknown")
Python 3 이전 버전을 탐지하고 아무 것도 가져오지 않으려면...
...목록 이해 범위 변경은 단일 표현으로(남용) 실행할 수 있습니다.
is_python_3_or_above = (lambda x: [x for x in [False]] and None or x)(True)
from sys import version_info, api_version, version, hexversion
print(f"sys.version: {version}")
print(f"sys.api_version: {api_version}")
print(f"sys.version_info: {version_info}")
print(f"sys.hexversion: {hexversion}")
산출량
sys.version: 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] sys.api_version: 1013 sys.version_info: sys.version_info(major=3, minor=6, micro=5, releaselevel='final', serial=0) sys.hexversion: 50726384
가장 간단한 방법
단말기에 python을 입력하면 다음과 같은 버전을 볼 수 있습니다.
desktop:~$ python
Python 2.7.6 (default, Jun 22 2015, 18:00:18)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
sys.version_info
것 요.tuple
오히려 특수 클래스를 반환하기 때문에 튜플을 사용하는 예제는 모두 작동하지 않습니다.비단뱀
>>> import sys
>>> type(sys.version_info)
<class 'sys.version_info'>
글자를 sys.version_info.major
★★★★★★★★★★★★★★★★★」sys.version_info.minor
분해보보 보보보다다★★★★★★★★★★…
import sys
if sys.version_info.major > 3:
print('Upgrade to Python 3')
exit(1)
Python 3을 실행하고 있는지 확인합니다.보다 구체적인 버전을 확인할 수도 있습니다.
import sys
ver = sys.version_info
if ver.major > 2:
if ver.major == 3 and ver.minor <= 4:
print('Upgrade to Python 3.5')
exit(1)
Python 3.5 이상을 실행하고 있는지 여부를 확인할 수 있습니다.
Python 전 python :python -V
★★★★★★★★★★★★★★★★★」python --version
★★★★★★★★★★★★★★★★★」apt-cache policy python
도 할 수 요.whereis python
몇 개의 버전이 설치되어 있는지 확인합니다.
Windows 명령어용 Python 버전을 확인하려면 명령어프롬프트에서 다음 명령을 실행하여 출력을 확인합니다.
c:\>python -V
Python 2.7.16
c:\>py -2 -V
Python 2.7.16
c:\>py -3 -V
Python 3.7.3
또한 각 Python 버전에 대한 폴더 구성을 보려면 다음 명령을 실행하십시오.
For Python 2,'py -2 -m site'
For Python 3,'py -3 -m site'
은 단지 반환될 뿐이다.2.7
,3.6
★★★★★★★★★★★★★★★★★」3.9
import sys
current_version = ".".join(map(str, sys.version_info[0:2]))
평소에는 그게 필요한...
보다 심플한 방법은 다음과 같습니다.
Spyder에서 새로운 "를 시작합니다.IPython Console"을 클릭하여 기존 스크립트를 실행합니다.
콘솔 창에 인쇄된 첫 번째 출력에 버전이 표시됩니다.
"Python 3.7.3 (디폴트, 2019년 4월 24일, 15:29:51)..."
명령줄에서 단일 명령으로 검사하지만 줄자, 마이너, 마이크로 버전, 릴리스 레벨 및 직렬을 포함하려면 스크립트에 사용하는 것과 동일한 Python 인터프리터(즉, 동일한 경로)를 호출합니다.
> path/to/your/python -c "import sys; print('{}.{}.{}-{}-{}'.format(*sys.version_info))"
3.7.6-final-0
주의:.format()
f-param이나 f-param 대신'.'.join()
에서는 임의의 포맷과 구분 문자를 사용할 수 있습니다.예를 들어, 이 문자를 greppable한1단어 문자열로 만들 수 있습니다.python, numpy, panda, sklearn, MacOS, xcode, clang, brew, conda, anaconda, gcc/g++ 등 모든 중요한 버전을 보고하는 bash 유틸리티 스크립트에 넣었습니다.로깅, 리플리케이터빌리티, 버그 리포트 트러블 슈팅 등에 도움이 됩니다.
Linux에서 작업하는 경우 명령어만 주세요.python
출력은 다음과 같습니다.
Python 2.4.3 (#1, 2009년 6월 11일, 14:09:37)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-44)] (Linux2 상)
자세한 내용을 보려면 "help", "copyright", "credits" 또는 "license"를 입력하십시오.
Windows의 경우 명령 프롬프트로 이동하고 다음 명령을 입력하여 python 버전을 가져옵니다.
python --version
또는
python -V
를 사용한 시도os.popen
변수에서 읽으려면:
import os
ver = os.popen('python -V').read().strip()
print(ver)
언급URL : https://stackoverflow.com/questions/1093322/how-do-i-check-which-version-of-python-is-running-my-script
'programing' 카테고리의 다른 글
mysql을 사용하여 처음 필터링된 결과에 따라 테이블 행 추가 (0) | 2022.10.20 |
---|---|
Python으로 긴 줄 바꿈 (0) | 2022.10.20 |
어레이에서 스트림을 작성하려면 어떻게 해야 합니까? (0) | 2022.10.20 |
JavaScript에서 임의의 영숫자 문자열? (0) | 2022.10.20 |
MySQL 선택 / NULL 손실 시 그룹화 (0) | 2022.10.20 |