【python】スクリプト実行中にインタプリタのバージョンを確認する
使用するインタプリタは3系で限定したいときなど、スクリプトを実行しているインタプリタのバージョンを知りたいときに
sys
モジュールが持つversion_info
メンバが使えます。
In [1]: import sys # version_info In [2]: sys.version_info Out[2]: sys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0) # メジャーバージョン In [3]: sys.version_info[0] Out[3]: 2 # マイナーバージョン In [4]: sys.version_info[1] Out[4]: 7 # リビジョン、ビルド In [5]: sys.version_info[2] Out[5]: 11 # リリースレベル(使用段階であれば'alpha','beta'等) In [6]: sys.version_info[3] Out[6]: 'final' # serial(なんだこれ) In [7]: sys.version_info[4] Out[7]: 0
使用例
使用するインタプリタを指定したり、
import sys # 使用するインタプリタを3系に制限 if sys.version_info[0] < 3: raise Exception("This python code should be run with Python 3.")
インタプリタのバージョンによって仕様の異なる処理を分岐できたりします。
def divide(a, b): if sys.version_info[0] < 3: return double(a) / b return a / b
尤も、後者の例は広範なバージョンをサポートする必要が無い限りやめたほうがいいと思いますが。。。