Seite 1 von 1

Pythonversion abfragen

Verfasst: Sonntag 2. Februar 2003, 13:17
von Dookie
Hallo,

manchmal, möchte man abfragen unter welcher Pythonversion ein Script läuft, wenn man z.B. Features von 2.2 verwendet, die unter früheren Versionen einen Workaround benötigen.
Hier mal ein Beispiel:

Code: Alles auswählen

from sys import version_info
if version_info < (2,2): # check for version < 2.2
    from UserList import UserList
    class MyList(UserList):
        def __init__(self):
            self.data = []
            ...
else:
    class MyList(list):
        def __init__(self):
            ...
sys.version_info ist bei Verson 2.1.3 z.B. filgendes Tuple (2, 1, 3, 'final', 0)
Das Ganze beruht auf der Möglichkeit Tuples (und auch Listen) miteinander zu vergleichen, die auch eine unterschiedliche anzahl von Elementen haben.

Code: Alles auswählen

>>> a = [1,2,3]
>>> [0,1,2] < a < [2,3,4]
1
>>> a < [0,1]
0
>>> a < [2,3]
1
>>> 
Gruß

Dookie

version_info versionsabhängig!

Verfasst: Donnerstag 6. März 2003, 00:13
von strogon14
Das große Problem mit version_info ist, es gibt es auch erst seit Python 2.0 und ist damit selbst versionsabhängig.

Man könnte als Lösung die erste Zeile in Deinem Code durch folgendes ersetzen:

Code: Alles auswählen

import sys

if hasattr(sys, 'version_info'):
    version_info = sys.version_info
else:
    import string
    version_info = tuple(map(int, 
      string.split(string.split(sys.version)[0], '.', 2)))
Das sollte auch mit Python 1.5.x funktionieren.