スクリプトを実行しているPythonのバージョンを確認するにはどうすればいいですか?

自分のスクリプトを解釈しているPython Interpreterのバージョンを確認するにはどうしたらいいですか?

ソリューション

この情報は,sysモジュールのsys.version文字列で得られます。

>>> import sys

人間が読める。

>>> print(sys.version)  # parentheses necessary in python 3.       
2.5.2 (r252:60911, Jul 31 2008, 17:28:52) 
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)]

さらなる処理のために

>>> sys.version_info
(2, 5, 2, 'final', 0)
# or
>>> sys.hexversion
34014192

スクリプトがPythonインタープリタの最小バージョン要件で実行されるようにするには、コードに以下を追加します。

assert sys.version_info >= (2, 5)

これはメジャーバージョンとマイナーバージョンの情報を比較します。タプルにマイクロ(=0, 1など)や、リリースレベル(='alpha', 'final'など)を好きなように追加してください。ただし、特定の機能が存在するかどうかを「カモ」チェックし、存在しない場合には回避策を講じる(あるいは救済する)方が良い場合がほとんどであることに注意してください。新しいリリースでは、機能がなくなって別のものに置き換えられることもあります。

解説 (5)

最善の策は、おそらく次のようなものでしょう。

>>> import sys
>>> sys.version_info
(2, 6, 4, 'final', 0)
>>> if not sys.version_info[:2] == (2, 6):
...    print "Error, I need python 2.6"
... else:
...    from my_module import twoPointSixCode
>>> 

さらに、インポートをシンプルな try で囲むことで、シンタックスエラーをキャッチすることができます。また、@Heikkiの指摘によると、このコードはかなり古いバージョンのpythonと互換性があります。

>>> try:
...     from my_module import twoPointSixCode
... except Exception: 
...     print "can't import, probably because your python is too old!"
>>>
解説 (4)
import sys
sys.version.split(' ')[0]

sys.versionでは、最初の数字を選ぶだけで欲しいものが手に入ります :)

解説 (1)