[Python-de] Extension
Philipp Kraus
philipp.kraus at flashpixx.de
Mo Apr 2 13:42:24 CEST 2012
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
Mehr Informationen über die Mailingliste python-de