スクリプトで Python バージョンを確認する方法
-
Python バージョンを確認するための
sys.versionメソッド -
Python バージョンを確認するための
sys.version_infoメソッド -
Python のバージョンを確認するための
platform.python_version()メソッド -
Python バージョンをチェックする
sixモジュールメソッド
異なる状況では、Python バージョン、またはより正確には、Python スクリプトファイルを実行している Python インタープリターバージョンを知る必要があります。
Python バージョンを確認するための sys.version メソッド
このバージョン情報は、sys モジュールの sys.version から取得できます。
Python 2.x で
>>> import sys
>>> sys.version
'2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)]'
または Python 3.x で
>>> import sys
>>> sys.version
'3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]'
Python バージョンを確認するための sys.version_info メソッド
sys.version は、現在の Python インタープリターの人間が読めるバージョン情報を含む文字列を返します。しかし、メジャーリリース番号やマイクロリリース番号などの情報は、コードでさらに使用するために追加の処理を導出する必要があります。
sys.version_info は、バージョン情報を名前付きタプルとして返すことにより、この問題を簡単に解決します。返されるバージョンデータは、
| データ | 説明 |
|---|---|
major |
メジャーリリース番号 |
micro |
パッチリリース番号 |
minor |
マイナーリリース番号 |
releaselevel |
alpha、beta、candidate または release |
serial |
シリアルリリース番号 |
>>> import sys
>>> sys.version_info
sys.version_info(major=2, minor=7, micro=10, releaselevel='final', serial=0)
>、>=、==、<=、または < 演算子を使用するだけで、現在のバージョンと参照バージョンを比較できます。
>>> import sys
>>> sys.version_info >= (2, 7)
True
>>> sys.version_info >= (2, 7, 11)
False
スクリプトに assert を追加して、スクリプトが最小限の Python バージョンの要件で実行されるようにすることができます。
import sys
assert sys.version_info >= (3, 7)
インタープリターがバージョンの要件を満たさない場合、AssertionError が発生します。
Traceback (most recent call last):
File "C:\test\test.py", line 4, in <module>
assert sys.version_info >= (3, 7)
AssertionError
Python のバージョンを確認するための platform.python_version() メソッド
platform モジュールの python_version() は、Python バージョンを文字列 major.minor.patchlevel として返します。
>>> from platform import python_version
>>> python_version()
'3.7.0'
または sys.version_info と同様に、platform には Python バージョンを文字列のタプル (major, minor, patchlevel) として返すメソッドもあります-python_version_tuple()
>>> import platform
>>> platform.python_version_tuple()
('3', '7', '0')
Python バージョンをチェックする six モジュールメソッド
Python のバージョンが Python 2.x か Python 3.x かを確認するだけであれば、six モジュールを使用してジョブを実行できます。
from __future__ import print_function
import six
if six.PY2:
print("Python 2.x")
if six.PY3:
print ("Python 3.x")
