Works by

Ren's blog

@rennnosuke_rk 技術ブログです

【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

尤も、後者の例は広範なバージョンをサポートする必要が無い限りやめたほうがいいと思いますが。。。