スクリプトで 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")