Ich habe ein Programm in C++ geschrieben, das auf eigene Faust funktioniert, aber wir wollen es für Python zugänglich machen. Insbesondere haben wir einige Funktionen, die in C++ effizienter sind, aber wir machen viele andere Dinge mit der Ausgabe mit Python-Skripten. Ich möchte das Ganze von main() in Python nicht neu schreiben, da wir Boosts Wurzelfindungsalgorithmen und andere Funktionalitäten verwenden, die in Python ein Problem darstellen würden.Python-Bindung von Funktionen in einem C++ Programm
Ist es möglich, Python-Bindung zu diesen Funktionen hinzuzufügen, während die C++ main() beibehalten? Ich habe noch nie Python-Bindungen gemacht, aber ich habe mir Boost.python angesehen, da wir bereits Boost verwenden. Die meisten Beispiele verwenden C++ - Funktionen/-Klassen in einer hpp-Datei und betten sie in ein Python-Programm ein, was nicht genau unseren Vorstellungen entspricht.
Wir wollen, dass unser C++ - Programm als Standalone-Programm so bleibt, wie es ist, wenn Benutzer es wollen, und es Benutzern auch erlaubt, diese Funktionen von einem Python-Programm aus aufzurufen. In der Lage zu sein, das gleiche Makefile und exe zu verwenden, wäre großartig. Wir wollen nicht wirklich eine separate C++ - Bibliothek erstellen, die die gebundenen Funktionen enthält; Wir sind nicht daran interessiert, eine Python-Version des Codes zu erstellen, sondern erlauben lediglich den Zugriff auf diese nützlichen Funktionen.
Dank
Mögliches Duplikat von [Aufruf von C/C++ aus Python?] (Http://stackoverflow.com/questions/145270/calling-c-c-from-python) –
Sie benötigen wahrscheinlich GObject Introspection-Bibliothek. – Arunmu
Zumindest mit Cython ist es möglich, Call-Kette wie 'C++ main -> C-Funktion in Cython implementiert -> Python-Code -> Python-Modul in Cython implementiert -> C++ - Code ...'. Es ist wahrscheinlich auch mit Boost.python möglich. –