Seite 1 von 1
ctypes Array von Struckturen
Verfasst: Dienstag 29. März 2011, 13:38
von alti23
Hallo,
ich möchte ein Array aus Struckturen anlegen.
Mein code sieht so aus:
Code: Alles auswählen
import ctypes
class TtaskInfo(ctypes.Structure):
_pack_ = 1
_fields_ = [("description", ctypes.c_char_p), ("taskId", ctypes.c_ushort), ("taskCycle", ctypes.c_ulong)]
TtaskInfoArr = TtaskInfo * 20
taskInfo1 = TtaskInfoArr()
Ich bekomme folgende Fehlermeldung: External: Error in exec code line 9: 'taskInfo1 = TtaskInfoArr()'
Kann vielleicht jemand helfen
Re: ctypes Array von Struckturen
Verfasst: Dienstag 29. März 2011, 14:03
von BlackJack
@alti23: Bei *dem* Quelltext gibt es erst einmal einen `SyntaxError` wegen der fehlenden Einrückung.
Wo bekommst Du diese Fehlermeldung denn? Und könntest Du den kompletten Traceback zeigen?
Re: ctypes Array von Struckturen
Verfasst: Dienstag 29. März 2011, 14:08
von EyDu
Und dann heißt es natürlich noch Strukturen

Re: ctypes Array von Struckturen
Verfasst: Dienstag 29. März 2011, 14:12
von alti23
Hallo,
im Originalcode sind die beiden Zeilen korrekt eingerückt.
Der Pythoneditor ist in einer Applikation(DSpace) eingebettet, die Felermeldungen stammen aus dem Log-fenster dieser App.
Da sind folgende 2 Fehler zu finden.
External: Error in exec code line 9: 'taskInfo1 = TtaskInfoArr()'
External: <type 'AttributeError'>: __module__
Re: ctypes Array von Struckturen
Verfasst: Dienstag 29. März 2011, 14:16
von BlackJack
@alti23: Dann liegt das Problem wohl irgendwo beim Zusammenspiel mit dieser Anwendung, denn so alleinstehend oder in einer Python-Shell funktioniert das problemlos.
Kannst Du von der Anwendung irgendwie den normalen, vollständigen Python-Traceback bekommen? Oder ihn notfalls selbst ausgeben? Zum Beispiel mit `traceback.print_exc()`.
Re: ctypes Array von Struckturen
Verfasst: Dienstag 29. März 2011, 14:56
von alti23
Komme an keinen traceback ran. Hmmm.
Re: ctypes Array von Struckturen
Verfasst: Dienstag 29. März 2011, 15:06
von EyDu
Fange doch einfach bei der betreffenden Zeile die Exception ab und schreibe den dazugehörigen Traceback ins Log. Oder in irgend eine Datei, falls kein richtiges Logging existiert.
Re: ctypes Array von Struckturen
Verfasst: Dienstag 29. März 2011, 15:26
von alti23
So sieht mein Log aus:
Traceback (most recent call last):
File "<user input of 'Main Library.Exec'>", line 11, in <module>
File "C:\Programme\Dspace\AutomationDesk\DSPythonModules\AutomationDeskPackages\TAMMain\tam_namespace.py", line 316, in __setitem__
File "C:\Programme\Dspace\AutomationDesk\DSPythonModules\AutomationDeskPackages\TAMMain\tam_namespace.py", line 120, in LogInstance_Update
File "C:\Programme\Dspace\AutomationDesk\DSPythonModules\AutomationDeskPackages\TAMMain\tam_namespace.py", line 68, in IsItemInstance
AttributeError: __module__
in Line 11 steht: taskInfo1 = TtaskInfoArr()
Re: ctypes Array von Struckturen
Verfasst: Dienstag 29. März 2011, 16:01
von BlackJack
@alti23: Das `tam_namespace`-Modul scheint da irgendwo ein `__module__`-Attribut zu erwarten wo keines ist. Das dürfte eine Frage für den Entwickler von dem Code sein.