Grundsätzlich mag ich eine Python-Programm Anruffunktionen in CPython-C-Integration: Ctypes, CFFI oder erstellen Sie eine Binär-Modul
So (soweit ich weiß wie) meine Optionen sind geschrieben machen:
- ctypes/CFFI
- eine DLL erstellen/SO/dylib die C-Funktionen enthalten, und auf sie zugreifen ctypes oder CFFI verwenden. Anscheinend CFFI ist viel schneller mit dem einzigen Nachteil, in Python alle Funktionen Signaturen zu deklarieren.
- Vorteile:
- Sie haben noch keine Anpassung in meinen C-Funktionen zu machen. Die gesamte Typ-Übersetzung erfolgt in Python.
- Nachteile:
- Leistung?
- Python Binärmodul
- eine Python-Schnittstelle in C schreiben, mein C-Modul in eine binären Python-Modul Umwandlung
- Pro:
- Leistung?
- Nachteile:
- All Typ-Übersetzung ist in C mit [SIP] erfolgen [3] könnte dies automatisiert werden.
umrechnen C-Modul in einen Python Binärmodul ist wirklich schneller?
Unterstützt beide Lösungen das Senden von Python-Callbacks an C-Funktionen?
Ist SIP eine gute Option, um eine Python-Schnittstelle zu generieren? Gibt es noch andere Möglichkeiten?
Gibt es irgendwelche anderen Besonderheiten?
Gefunden einige gute Sachen: [5 Möglichkeiten, Python mit nativem Code zu verwenden] (http://kos.gd/2013/01/5-ways-to-use-python-with-native-code/), [ Python Wrapper Tools: Eine Leistungsstudie] (http://web.archive.org/web/20070703071726/http://people.web.psi.ch/geus/talks/europython2004_geus.pdf) – romulof