.NET C# Java Javascript Exception

 | 
Frage stellen Fragen Themen Mitglieder Abzeichen RSS-Feed
2

Ich will eine selbstgeschriebene Python-lib nach C++ kompilieren damit ich in meinem Hauptprogramm (in C++ geschrieben) die lib benutzen kann. Kennt jemand ein Tool, um Python-Code nach C++ zu übersetzen?

Themen:
16.07.09
zoopalola 41 1 2
Kommentieren - Für Rückfragen oder Anmerkungen
4 Antworten
2
Python funktioniert grundsätzlich anders als C++. Der Pythoninterpretor ist nicht nur einfach so ne Art Laufzeit-Compiler, sonder stellt eine komplette RTE mit Namensauflösung zur Laufzeit, Typmanagement, etc zur Verfügung.

Soll heißen: Die RTE ist integraler Bestandteil und ohne die gehts einfach nicht (nein, wirklich nicht). Daher ist es nicht möglich, einen "echten" Python->C++ "Compiler" zu bauen (der gleiche Grund warum es auch keinen "echten" Python->exe compiler gibt).

Was mehr oder weniger geht, ist wenn man sich auf ein spezielles Subset von Python beschränkt. z.B. Shed Skin (http://code.google.com/p/shedskin/), hab keine Ahnung ob der wirklich was taugt.

So oder so, weiss ich nicht ob Du mit dem ne Library rauskriegst, und wenn doch, rechne damit dass Du immer noch mit den ganzen internas von Python konfrontiert bist (Reference counting, etc). So gesehen ist es vielleicht am einfachsten Du embeddest den Python code "richtig", das läßt dir dann größere Fleibilität und ist vermutlich auch nicht schwieriger. Ich hab das vor ein paar Jahren mal gemacht, und das geht nach kurzer Einarbeitung eigentlich echt gut. Siehe http://docs.python.org/3.1/extending/index.html

Heutzutage gibt's tatsächlich sogar von Boost ne Library, die einen dabei unterstützt: http://www.boost.org/doc/libs/1_40_0/libs/python/doc/index.html

Weitere möglicherweise interessante Projekte: Pyrex, Boo, und RPython.
07.09.09
uvatter 61 1 1
2
Eventuell könnte dir da das experimentelle Programm "Shed Skin" weiterhelfen. Zu finden ist das hier. Ist natürlich davon abhängig wie die Funktionalität deiner Bibliothek aussieht.
Shed Skin is an experimental compiler, that can translate pure, but implicitly statically typed Python programs into optimized C++.

Laut den Kommentaren im ShedSkinWiki ist eine Übersetzung von Python-Quellcode in C++ möglich. Damit läßt sich dann eine einfache statische Bibliothek erstellen. Da das Programm ja noch in der Entwicklung ist, wird es sicherlich noch einige Einschränkungen geben.

Ich selbst habe mit dem Programm noch keine eigene Erfahrung gesammelt.

Gruß
Batou

Edit: Ich war zu langsam ;-)
08.09.09
Batou 41 1 1
Batou 41 1 1
1
Es gibt soweit ich weiß http://www.py2exe.org/
Alsod die Möglichkeit Python in "nativen" Code zu übersetzen. Mir ist ein Übersetzer nach C/C++ nicht bekannt. Nur ich denke was Du eigentlich möchtet ist Python in Dein Programm einbetten. Das ist z.B. hier beschrieben
http://www.linuxjournal.com/article/8497

Bis dann
29.07.09
FDominicus 129 1 1
1
py2exe konvertiert den Code nicht in nativen Maschinencode, sondern packt einfach den Python Code und den Interpreter zusammen mit allen benötigten Bibliotheken in eine Exe.
milan1612 07.09.09
0
Ich Programmiere gerade ein py to c Konverter
in Python es ist ja grundsätzlich möglich ein Python File
auszulesen zu Analysieren und entsprechend nach C
zu Konvertieren
03.04.10
Deine Antwort
Entweder einloggen... ...oder ohne Wartezeit registrieren
Name
Passwort
Passwort wiederholen
E-Mail
Geworben von


Login mit OpenID

Mit einem OpenID-Account kannst Du dich auf allen Webseiten anmelden, die OpenID unterstützen. Du hast bereits ein Benutzerkonto bei einem der folgenden Provider? Dann kannst Du dich direkt hier damit registrieren.


OpenID-Provider anklicken: