[Python-de] Extension
Stefan Behnel
python-de at behnel.de
Di Mär 27 10:54:11 CEST 2012
Philipp Kraus, 23.03.2012 16:30:
> On 2012-03-23 16:05:43 +0100, Diez B. Roggisch said:
>
>> Dazu nimmt man besser spezielle C++ wrapper Generatoren. Ich habe gute
>> Erfahrungen mit SIP gemacht. SWIG, Cython, Boost::Python ebenfalls.
>> Diez
>
> Danke für diesen Hinweis, ich hatte mit SWIG mal bezüglich Java angeschaut,
> aber leider war das nicht so ganz, wie ich das wollte.
SIP und SWIG sind automatische Wapper-Generatoren. Entweder, sie tun was du
willst - oder eben nicht. Und wenn nicht, dann wird's im besten Fall nur
irre kompliziert und im schlechtesten Fall kannst du das Tool wechseln.
> Ich denke, da ich eh mit Boost arbeite, werde ich Boost::Python einmal
> probieren. Meine C++ Klassen sind Templates, so dass ich
> ohnehin wohl entsprechenden C++ Code schreiben muss, um die Typenbindung zu
> erreichen, ich denke der Generator kann mir das nicht umsetzen, oder?
Doch, müsste eigentlich jeder C++-Wrapper-Generator unterstützen. Cython
kann es in jedem Fall und generiert auch (erfahrungsgemäß) den schnellsten
Code. Und: du kannst damit den Wrapper-Code in Python schreiben statt in
C++. Hat also nur Vorteile gegenüber Boost::Python.
> Wenn ich das dann richtig verstehe, würde mir der Generator aus meiener CPP
> Implementation der Klasse entsprechenden Pythoncode erzeugen
Grundsätzlich erstmal ja. Wie das genau geht und welche Arbeit der
Generator dir abnimmt (oder zusätzlich aufbürdet), das ist bei jedem
unterschiedlich.
Stefan
Mehr Informationen über die Mailingliste python-de