Tino may be right, but I do this:: try: v = open(os.path.join(SOFTWARE_HOME,'version.txt')).read() m = re.match(r'(?i)zope\s*([0-9]+)\.([0-9]+)\.([0-9]+)',v) ZOPEVERSION = (int(m.group(1)),int(m.group(2)),int(m.group(3))) except: # if we can't read version.txt, assume we're dealing with a # highly advanced specimen.. (cvs) ZOPEVERSION = (9,9,9)