Hvordan kan jeg kontrollere, hvilken version af Python-fortolkeren der fortolker mit script?
Disse oplysninger er tilgængelige i strengen sys.version i modulet sys:
>>> import sys
Kan læses af mennesker:
>>> 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)]
Til viderebehandling:
>>> sys.version_info
(2, 5, 2, 'final', 0)
# or
>>> sys.hexversion
34014192
For at sikre, at et script kører med et minimalt versionskrav til Python-fortolkeren, skal du tilføje dette til din kode:
assert sys.version_info >= (2, 5)
Dette sammenligner major- og minor- versionsoplysninger. Tilføj micro (=0
, 1
, osv.) og endda releaselevel (='alpha'
,'final'
, osv.) til tuplen som du vil. Bemærk dog, at det næsten altid er bedre at "duck" tjekke om en bestemt funktion er til stede, og hvis ikke, lave en workaround (eller springe ud). Nogle gange forsvinder funktioner i nyere udgivelser og erstattes af andre.
Dit bedste bud er nok noget i den retning:
>>> 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
>>>
Derudover kan du altid pakke din import ind i et simpelt try, hvilket burde fange syntaksfejl. Og for at henvise til @Heikki's pointe vil denne kode være kompatibel med meget ældre versioner af python:
>>> try:
... from my_module import twoPointSixCode
... except Exception:
... print "can't import, probably because your python is too old!"
>>>