Ctypes oder boost::python?
Verfasst: Samstag 18. April 2009, 03:56
Hi there!
Ich befasse mich seit kurzem mit Python, und mache meine ersten wackeligen Schritte mit der Sprache (als C und ASM-Coder bin ich soviel "high level" nicht gewöhnt ).
Um eine bestimmte Hardware anzusprechen muss ich von python aus nun auf eine shared lib zugreifen und ihre API benutzen.
Ich bin zuerst auf boost::python gestoßen, welches mir anscheinend die Möglichkeit gibt in C++ meine bisherige Funktionalität neu zu modellieren um sie python-konform zu machen und sie python bekannt zu machen - also einen Wrapper zu schreiben.
Leider ärgert mich die Dokumentation etwas und viele Fragen bleiben unbeantwortet. Ich habe nichtmal herausgefunden wie ich ein Array in einem Struct zu Python exportieren kann.
Nachdem ich dann mit meiner Python-Lektüre (der Schinken von den 2 Info-Studenten aus dem Galileo-Verlag - ja ich weiß, nichts tolles) etwas weiter gekommen bin, wurde mein Blick auf Ctypes gelenkt. Dies ermöglicht mir nun C-Datentypen in Python nachzubilden und entsprechend zu benutzen.
Die Dokumentation war schnell gelesen.
Meine Frage ist nun, was ist praktikabler? Was ist performanter?
Ich muss mit der API teilweise zeitkritische Aktionen veranstalten, da würde es mich eher ärgern wenn der interpreter Lange obskure Datentypen basteln muss.
Viel müsste ich nichtmal nachbilden. Die API setzt sich aus 2 Structs mit ein paar float arrays und 6 funktionen zusammen. Wäre es nicht bloated hier einen Wrapper zu schreiben? Oder kann ich damit performance rausholen?
Also, her mit eurer Meinung
Vielleicht auch noch Alternativ-Vorschläge? Ich bin gespannt was die Python-Welt noch so offeriert
besten Gruß
Ike
Ich befasse mich seit kurzem mit Python, und mache meine ersten wackeligen Schritte mit der Sprache (als C und ASM-Coder bin ich soviel "high level" nicht gewöhnt ).
Um eine bestimmte Hardware anzusprechen muss ich von python aus nun auf eine shared lib zugreifen und ihre API benutzen.
Ich bin zuerst auf boost::python gestoßen, welches mir anscheinend die Möglichkeit gibt in C++ meine bisherige Funktionalität neu zu modellieren um sie python-konform zu machen und sie python bekannt zu machen - also einen Wrapper zu schreiben.
Leider ärgert mich die Dokumentation etwas und viele Fragen bleiben unbeantwortet. Ich habe nichtmal herausgefunden wie ich ein Array in einem Struct zu Python exportieren kann.
Nachdem ich dann mit meiner Python-Lektüre (der Schinken von den 2 Info-Studenten aus dem Galileo-Verlag - ja ich weiß, nichts tolles) etwas weiter gekommen bin, wurde mein Blick auf Ctypes gelenkt. Dies ermöglicht mir nun C-Datentypen in Python nachzubilden und entsprechend zu benutzen.
Die Dokumentation war schnell gelesen.
Meine Frage ist nun, was ist praktikabler? Was ist performanter?
Ich muss mit der API teilweise zeitkritische Aktionen veranstalten, da würde es mich eher ärgern wenn der interpreter Lange obskure Datentypen basteln muss.
Viel müsste ich nichtmal nachbilden. Die API setzt sich aus 2 Structs mit ein paar float arrays und 6 funktionen zusammen. Wäre es nicht bloated hier einen Wrapper zu schreiben? Oder kann ich damit performance rausholen?
Also, her mit eurer Meinung
Vielleicht auch noch Alternativ-Vorschläge? Ich bin gespannt was die Python-Welt noch so offeriert
besten Gruß
Ike