Python Tips: Python のバージョンによって処理を変えたい

Python において、 Python のバージョンによって処理を変更する方法をご紹介します。

結論としては sys.version_info オブジェクトを利用する方法が最も Pythonic でシンプルかと思います。 sys.version_info にはバージョン情報に関係するさまざまな情報が含まれています。

# Python 2.x でなければ現在の Python のバージョンを表示して処理を終了する

import sys

if sys.version_info.major != 2:
    sys.stderr.write('Please use python 2.7. Your python version is as following:\n')
    sys.stderr.write('{}\n'.format(sys.version))
    exit()

# 以下メインの処理

上のコードの中で使用している sys.version には、バージョン情報を表す文字列が入っています。

import sys

# 2.7.6 の場合

# sys.version には文字列が入っている
prtin(sys.version)
# => '2.7.6 (default, Sep  9 2014, 15:04:36) \n[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)]'

# sys.version_info には major minor micro などのアトリビュートを持ったオブジェクトが入っている
print(sys.version_info.major)  # => 2
print(sys.version_info.minor)  # => 7
print(sys.version_info.micro)  # => 6

以上です。