Re: [Python-de] Extension
On 2012-03-27 11:35:13 +0200, Christian Theune said:
On 03/27/2012 11:19 AM, Stefan Behnel wrote:
Stefan Behnel, 27.03.2012 10:54:
Philipp Kraus, 23.03.2012 16:30:
Wenn ich das dann richtig verstehe, würde mir der Generator aus meiener CPP Implementation der Klasse entsprechenden Pythoncode erzeugen
Grundsätzlich erstmal ja
Äh, hopsa - zu schnell geantwortet. "Python-Code" im Sinne von "Code für CPython" (oder andere Python-Implementierungen), nicht im Sinne von "Python Source-Code".
Der generierte Code ist in deinem Fall immer C++ (wenn auch wahrscheinlich mit hohem C-Anteil).
Und noch eigentlicher erzeugt er doch nur Glue-Code, der den Objekt-Code der entsprechenden Library instrumentiert und dieser Glue-Code ist für Python sichtbar. Die Original-Library wird ja dadurch nicht nach Python portiert sondern für Python nutzbar.
Erst einmal vielen Dank an alle. Ich habe mir jetzt noch mal Swig angeschaut und mit Java bzw JNI getestet, das funktioniert schon mal ganz gut und der erzeugte C Code ist jetzt auch nicht so schlimm. Swig erzeugt bei Java JNI C Code, wobei er eben die Adresse den C++ Objektes durchschleift und dann entsprechend damit arbeiten. Drumherum wird dann ein entsprechender Glue-Code erzeugt, mit dem ich dann unter Java arbeite. Ich hoffe mal, dass es bei Python genauso ist. Nur muss ich im Moment mich erst einmal in die Pakagestruktur einlesen und wie ich dann alles richtig organisieren. Es soll später ja ein portables Paket raus kommen mit prekompilierten Binaries bzw. Sources Codes zum selbst kompilieren. Zu den Algorithem: Es sind überwiegend Heuristiken und numerische Algorithmen, d.h. ich brauche nur eine Anbindung von Python, d.h. die Daten müssen durchgereicht werden. NumPy bietet zwar schon einige passende Algos fertig an, aber leider nicht alle. Außerdem möchte ich möglichst "einfache" Datentypen verwenden, d.h. Python soll mit simplen Typen und Listen arbeiten, die C/C++ Komponenten konvertieren dann die Daten passend und berechnen und liefern die Ergebnisse wieder in einfachen Typen / Listen nach Python. Danke Phil
participants (1)
-
Philipp Kraus