Python'un en azından belirli bir sürümünü gerektiren bir Python betiğim varsa, betiği başlatmak için Python'un önceki bir sürümü kullanıldığında incelikle başarısız olmanın doğru yolu nedir?
Hata mesajı verecek ve çıkacak kadar erkenden kontrolü nasıl alabilirim?
Örneğin, ternery operatörünü (2.5'te yeni) ve "with" bloklarını (2.6'da yeni) kullanan bir programım var. Komut dosyasının dediği ilk şey olan basit bir tercüman sürümü denetleyicisi rutini yazdım ... ancak o kadar da uzak değil. Bunun yerine, rutinlerim bile çağrılmadan komut dosyası python derlemesi sırasında başarısız oluyor. Bu nedenle, komut dosyasının kullanıcısı, çok basit bir sinax hata geri bildirimi görür - ki bu sadece bir Python'un yanlış sürümünü çalıştırma durumunun bir uzman olduğunu gerektirir.
Python sürümünü nasıl kontrol edeceğimi biliyorum. Sorun, bazı sözdiziminin Python'un eski sürümlerinde yasadışı olmasıdır. Bu programı düşünün:
import sys
if sys.version_info < (2, 4):
raise "must use python 2.5 or greater"
else:
# syntax error in 2.4, ok in 2.5
x = 1 if True else 2
print x
2.4 altında çalıştırıldığında, bu sonucu istiyorum
$ ~/bin/python2.4 tern.py
must use python 2.5 or greater
ve bu sonuç değil:
$ ~/bin/python2.4 tern.py
File "tern.py", line 5
x = 1 if True else 2
^
SyntaxError: invalid syntax
(Bir iş arkadaşınız için kanallık.)