PyGTKのプログラム実行時のバージョン判定について
PyGTKのリファレンスを見ると、「new in PyGTK [バージョン]」と書かれているクラスが存在し、これらは、そこに書かれているバージョン以上のPyGTKでのみサポートされていることを示す。
これらの機能を使用する場合、PyGTKのバージョン判定をする必要があるかもしれない。
ここでは、バージョン判定が必要になったときに参考にできるようにするため、ComixとCompizConfig Settings Manager(CCSM)のコードを一部引用しておく。
[引用]ファイル名: /usr/bin/comix より
try: import pygtk pygtk.require('2.0') import gtk assert gtk.gtk_version >= (2, 8, 0) assert gtk.pygtk_version >= (2, 8, 0) import pango import gobject except AssertionError: print ('You do not have the required versions of GTK+ and/or PyGTK ' + 'installed.\n\n' + 'Installed GTK+ version is ' + '.'.join([str(n) for n in gtk.gtk_version]) + '\n' + 'Required GTK+ version is 2.8.0 or higher\n\n' 'Installed PyGTK version is ' + '.'.join([str(n) for n in gtk.pygtk_version]) + '\n' + 'Required PyGTK version is 2.8.0 or higher') sys.exit(1) except: print 'PyGTK version 2.8.0 or higher is required to run Comix.' print 'No version of PyGTK was found on your system.' sys.exit(1)
[引用]ファイル名: /usr/bin/ccsm より
if gtk.pygtk_version < (2,10,0): print "PyGtk 2.10.0 or later required" raise SystemExit
PyGTKのFAQでも書かれている]が、
となっているため、これを要求バージョンと比較する形となる。
なお、CCSMの例にある「raise SystemExit」では、プロセスの戻り値が0(正常終了の値)になってしまうため、sys.exit()を使用して別の値を返すようにしたほうがよいかもしれない。
使用したバージョン:
- CompizConfig Settings Manager(CCSM) 0.7.4
- Comix 3.6.4(3.6.4-r1)
- PyGTK 2.12.0