Symptom
- PTV Visum konnte eine passende Installation von Python 2.7 und/oder 3.7/3.9 nicht finden.
- Python 2.7 und/oder 3.7/3.9 wird unter dem Menü "Benutzereinstellungen" als "nicht verfügbar" angezeigt.
- AddIns und Python-Skripte funktionieren nicht.
Beispiele:
Der Öffnen von
Skripte -> Python Console
führt zu einem Absturz oder der Fehlermeldung
"Für das AddIn .. ist keine gültige Scripting-Umgebung definiert."
"Keine passende Python 3.7 Installation gefunden".
AddIns wie "Calculate Matrix" führen zu einer Fehlermeldung oder zum Absturz.
Ursache
Die passende Python-Version ist nicht installiert oder wird nicht gefunden.
PTV Visum 2022 und neuer unterstützen nur noch die Python-Version 3.9 (64 Bit).
PTV Visum 2020 unterstützt die Python-Versionen 2.7 und 3.7, jeweils in der 64-Bit-Variante.
Parallelinstallation von verschiedenen Python-Versionen sind möglich (z.B. auch 3.8).
PTV Visum braucht eine korrekte Python-Installation (systemweit für Python 3.9) inklusive zugehöriger Registry-Einträge sowie das Python-Paket pywin32. Dieses muss nach der Installation noch systemweit registriert werden, wie unter https://github.com/mhammond/pywin32#installing-via-pip beschrieben.
Support wird nur gegeben für Setups aus
http://cgi.ptvgroup.com/php/vision-setups/
Lösung
Vorgehen für Python 3.9 (für 3.7 analog):
Zunächst alle Python 3.9-Installationen deinstallieren, danach beide Registryschlüssel
HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.9
HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.9
manuell entfernen (falls noch vorhanden) und anschließend Python 3.9 über das Setup aus
http://cgi.ptvgroup.com/php/vision-setups/
installieren.
Details Python 3.9:
Visum versucht beim Start, die DLL "pythoncom39.dll" zu laden und verwendet dabei als Suchpfad den Unterordner "Lib\site-packages\pywin32_system32" des Pfades aus dem InstallPath-Registryschlüssel (\SOFTWARE\Python\PythonCore\3.9\InstallPath).
In diesem Verzeichnis sollten sich die zwei Dateien "pythoncom39.dll" sowie "pywintypes39.dll" befinden.
Ebenfalls sollte sich im Ordner, auf den der InstallPath-Registryschlüssel verweist, die Datei "python39.dll" befinden.
Beim Versuch, die DLL "pythoncom39.dll" zu laden, wird zusätzlich auch im Systemordner (Windows\system32) und u.U. auch in Ordnern der PATH-Umgebungsvariable gesucht.
Um sicherzustellen, dass es nicht doch noch unterschiedliche Varianten dieser DLL auf dem Rechner gibt, kann man auch noch einmal auf dem gesamten Rechner nach allen Dateien mit dem Namen "pythoncom39.dll" suchen.
Der Inhalt der Protokolldatei nach dem Versuch, ein Skript auszuführen, könnte auch noch Informationen darüber liefern, was beim Laden von Python fehlschlägt.
Kommt es zu einem Fehler beim Laden von Python-Paketen, könnte dies auch an der Umgebungsvariable PYTHONPATH liegen, wenn diese auf einen Ordner mit Paketen einer anderen Python-Version verweist.