Seite 1 von 1
Bindings zu C Sourcen
Verfasst: Mittwoch 3. November 2010, 16:03
von burli
Hi, ich fasse gerade ein neues Thema an. Ich habe hier die C Sourcen für avrdude. Dafür will ich Python Bindings erzeugen. Ich kenne bisher nur SWIG (nur vom Namen) und wollte als erstes mal fragen, ob es (einfachere) Alternativen gibt. Was würdet ihr mir empfehlen, was ich verwenden soll?
Re: Bindings zu C Sourcen
Verfasst: Mittwoch 3. November 2010, 16:13
von DasIch
Nimm Cython.
Re: Bindings zu C Sourcen
Verfasst: Mittwoch 3. November 2010, 16:23
von BlackJack
Oder `ctypes` aus der Standardbibliothek.
Re: Bindings zu C Sourcen
Verfasst: Mittwoch 3. November 2010, 20:41
von lunar
Im Falle einer einfachen Anbindung ist cython keine kluge Wahl, da die Installation der Anbindung dann immer einen Compiler verlangt. cython ist viel eher dann sinnvoll, wenn existierender Python-Quelltext sich als zu langsam erweist, und dementsprechend in C ausgelagert werden soll.
Für einfache Anbindungen ist dagegen ctypes das Mittel der Wahl. Eine solche Anbindung kommt dann im Idealfall mit den Mitteln der Standardbibliothek aus und benötigt keinen Compiler, was die Verteilung und die Installation dieser Anbindung gegenüber einer auf cython basierenden Anbindung wesentlich vereinfacht.
Re: Bindings zu C Sourcen
Verfasst: Mittwoch 3. November 2010, 21:37
von burli
Wo ist der Unterschied ctypes/SWIG?
Re: Bindings zu C Sourcen
Verfasst: Mittwoch 3. November 2010, 22:27
von BlackJack
@burli: SWIG parst C oder C++ Quelltext und generiert daraus Quelltext in C, den man zu einem Python-Modul übersetzen kann. `ctypes` lädt dynamisch linkbare Bibliotheken (DLL/.so) zur Laufzeit und lässt einen Funktionen darin aufrufen.
Re: Bindings zu C Sourcen
Verfasst: Mittwoch 3. November 2010, 22:43
von burli
Ok, dann hab ich das bisher richtig verstanden. Beim derzeitigen Status der Sourcen bringt mir ctypes dann wohl nichts, weil ich keine DLL/so Datei habe. Ich hoffe noch, dass die Entwickler noch eine DLL bauen
Re: Bindings zu C Sourcen
Verfasst: Mittwoch 3. November 2010, 23:59
von Darii
burli hat geschrieben:Ok, dann hab ich das bisher richtig verstanden. Beim derzeitigen Status der Sourcen bringt mir ctypes dann wohl nichts, weil ich keine DLL/so Datei habe. Ich hoffe noch, dass die Entwickler noch eine DLL bauen
Ohne funktionierende C-library nützt dir kein C-Binding etwas…
Re: Bindings zu C Sourcen
Verfasst: Donnerstag 4. November 2010, 15:16
von b.esser-wisser
Reicht nicht vielleicht ein modul, das
avrdude per
subprocess steuert?
... ganz besonders wenn es keine shared library gibt.
hth, Jörg