Hier ein kleines Skript welches mit _winreg herrausfindet welche Python Version, in welchem Pfad installiert ist:
1 #!/usr/bin/env python
2 # -*- coding: iso-8859-1 -*-
3
4 import _winreg as winreg
5
6
7 #----------------------------------------------------------------------
8 def get_python_versions():
9 """
10 Gibt alle installierten Python-Versionen unter Windows zurück.
11
12 Dazu werden die Unterschlüssel des Registry-Schlüssels
13 "HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\"
14 ausgelesen.
15 """
16
17 # Registry-Key öffnen
18 try:
19 key = winreg.OpenKey(
20 winreg.HKEY_LOCAL_MACHINE,
21 "SOFTWARE\\Python\\PythonCore"
22 )
23 except WindowsError:
24 return None
25
26 try:
27 # Unterschlüssel durchlaufen
28 index = 0
29 versions = []
30 while True:
31 try:
32 keyvalue = winreg.EnumKey(key, index)
33 versions.append(keyvalue)
34 index += 1
35 except WindowsError:
36 break
37 finally:
38 # Key schließen
39 winreg.CloseKey(key)
40
41 # Zurück geben
42 return versions
43
44
45 def get_python_path(version = "2.4"):
46 """
47 Gibt den Pfad zur übergebenen Pythonversion zurück.
48
49 Dazu wird der Registry-Pfad
50 "HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\<version>\InstallPath\"
51 ausgelesen.
52 """
53
54 # Registry-Key öffnen
55 try:
56 key = winreg.OpenKey(
57 winreg.HKEY_LOCAL_MACHINE,
58 "SOFTWARE\\Python\\PythonCore\\%s\\InstallPath" % version
59 )
60 except WindowsError:
61 return None
62
63 try:
64 try:
65 # Pfad zur Python-Installation auslesen
66 path = winreg.QueryValueEx(key, "")[0]
67 except WindowsError:
68 path = ""
69 finally:
70 # Schlüssel schließen
71 winreg.CloseKey(key)
72
73 # Zurück geben
74 return path
75
76
77 #----------------------------------------------------------------------
78 if __name__ == "__main__":
79 versions = get_python_versions()
80 for version in versions:
81 print "Python", version, "->", get_python_path(version)
Code ist aus dem Python-Forum, geschrieben von Gerold. Eine wxPython-GUI existiert dafür auch, siehe Forumsthread.