自分のスクリプトを解釈している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'など)を好きなように追加してください。ただし、特定の機能が存在するかどうかを「カモ」チェックし、存在しない場合には回避策を講じる(あるいは救済する)方が良い場合がほとんどであることに注意してください。新しいリリースでは、機能がなくなって別のものに置き換えられることもあります。
0
1
'alpha'
'final'
最善の策は、おそらく次のようなものでしょう。
>>> 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!" >>>
import sys sys.version.split(' ')[0]
sys.versionでは、最初の数字を選ぶだけで欲しいものが手に入ります :)
この情報は,sysモジュールのsys.version文字列で得られます。
人間が読める。
さらなる処理のために
スクリプトがPythonインタープリタの最小バージョン要件で実行されるようにするには、コードに以下を追加します。
これはメジャーバージョンとマイナーバージョンの情報を比較します。タプルにマイクロ(=
0
,1
など)や、リリースレベル(='alpha'
,'final'
など)を好きなように追加してください。ただし、特定の機能が存在するかどうかを「カモ」チェックし、存在しない場合には回避策を講じる(あるいは救済する)方が良い場合がほとんどであることに注意してください。新しいリリースでは、機能がなくなって別のものに置き換えられることもあります。最善の策は、おそらく次のようなものでしょう。
さらに、インポートをシンプルな try で囲むことで、シンタックスエラーをキャッチすることができます。また、@Heikkiの指摘によると、このコードはかなり古いバージョンのpythonと互換性があります。
sys.versionでは、最初の数字を選ぶだけで欲しいものが手に入ります :)