Programm läuft nicht mehr

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Podensa
User
Beiträge: 5
Registriert: Freitag 31. Juli 2015, 08:43

Hallo zusammen,

ich schreibe gerade für meine Masterarbeit ein Programm sowohl in VBA als auch in Python.
Als ich heute an meinem Pythonprogramm weiterarbeiten wollte funktionierte es auf einmal nicht mehr. Klingt komisch, ist es auch. :K
(Ich habe auch mein letztes Backup getestet, das läuft auch nicht mehr.)

Konkret geht es darum auf eine CATIA-Zeichnung zuzugreifen. Hierfür lade ich CATIA wie folgt:

Code: Alles auswählen

from win32com.client import Dispatch
CATIA = Dispatch('CATIA.Application')
Das läuft auch noch, aber wenn ich später auf die Sheets zugreifen will kommt diese Fehlermeldung (die wohlgemerkt beim gleichen Code vorher nicht da war):
AttributeError: '<win32com.gen_py.CATIA V5 InfInterfaces Object Library.Document instance at 0x36279360>' object has no attribute 'Sheets'
Unter VBA läuft das Ganze nach wie vor einwandfrei.

Das einzige was ich versucht habe ist in der Shell CATIA anders zu laden:

Code: Alles auswählen

 from win32com.client.gencache import EnsureDispatch
CATIA = EnsureDispatch('CATIA.Application')
Seitdem tritt der o.g. Fehler auf. Selbst eine Systemwiederherstellung und eine Neuinstallation von allem was mit Python zu tun hat, hat nicht geholfen.

Kann ich mir mit diesem EnsureDispatch irgendwas so nachhaltig zerschießen, oder was kann da passiert sein?
Ich wäre für jede Idee, wie ich das Ganze retten kann dankbar!
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@Podensa: win32com legt Python-Dateien mit den Interfaces ins Temp-Verzeichnis. Es gibt glaube ich auch eine Möglichkeit, die neuerzeugung zu erzwingen, aber am einfachsten ist es, diese Dateien einfach aus dem Temp-Verzeichnis zu löschen.
Podensa
User
Beiträge: 5
Registriert: Freitag 31. Juli 2015, 08:43

Hallo Sirius,

danke, danke, danke! Du hast mich gerettet!
Du kannst dir gar nicht vorstellen wie sehr du mir geholfen hast :D
Antworten