Wie kompiliere ich C ++ / Cython-Projekt am besten in eine ausführbare Datei?

9

Ich habe ein Projekt mit einer Reihe von C ++ - und Python / Cython-Dateien. Bis jetzt habe ich den C ++ Teil primär entwickelt und mit qmake zu einer statischen Bibliothek kompiliert. Einige wenige Methoden werden mit boost :: python bereitgestellt und aus einer .py-Datei ausgeführt.

Ich wollte jetzt das Ganze in eine eigenständige ausführbare Datei kompilieren.

Meine Frage jetzt: Was ist der beste Weg, dies zu tun? Ich habe versucht, zu Cython zu wechseln, die Python-Dateien zu kompilieren und die Bibliothek zu verlinken. Aber es scheint, dass es keinen direkten Weg mit distutils / setup.py gibt, um eine ausführbare Datei, nur gemeinsame Bibliotheken, zu kompilieren.

Gibt es eine Möglichkeit, .cpp- und .pyx -Dateien auf einfache Weise gleichzeitig in ausführbare Dateien zu kompilieren?

Damit kann ich eine Menge boost :: python wrapper stuff loswerden und eine ordentliche Mischung aus c ++ / python bekommen, ohne eine shared library importieren zu müssen und das ganze Zeug mit pyinstaller zu packen?

    
snøreven 27.05.2012, 16:42
quelle

1 Antwort

1

Sie sollten nachsehen:

Da Python Ihr Einstiegspunkt ist, können Sie einen eigenständigen Interpreter, eine Umgebung und einen Ressourcenstandort in einer app / exe / binary bündeln. Es sammelt alle Ihre Bibliotheksmodule in seinen eigenständigen Site-Paketen

Wenn Sie keine normalen reinen py-Dateien verwenden und nur Cython-Dateien haben, dann ist es auch möglich, einen Interpreter in einen von ihnen als Einstiegspunkt mit einem --embed-Flag nach Cython einzubetten: Ссылка
Beachten Sie, dass dies ein ähnlicher "Freeze" -Ansatz für die zuvor genannten Packoptionen ist, aber nicht die zusätzliche Länge zum Erstellen eines eigenständigen env

    
jdi 27.05.2012, 18:53
quelle

Tags und Links