Bindings zu C Sourcen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

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?
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Nimm Cython.
BlackJack

Oder `ctypes` aus der Standardbibliothek.
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.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Wo ist der Unterschied ctypes/SWIG?
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
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.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

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
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

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…
Benutzeravatar
b.esser-wisser
User
Beiträge: 272
Registriert: Freitag 20. Februar 2009, 14:21
Wohnort: Bundeshauptstadt B.

Reicht nicht vielleicht ein modul, das avrdude per subprocess steuert?
... ganz besonders wenn es keine shared library gibt.

hth, Jörg
Antworten