| 

.NET C# Java Javascript Exception

3
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?
16.07.2009
zoopalola 51 1 2
5 Antworten
3
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.2009
uvatter 71 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.2009
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.2009
FDominicus 139 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.2009
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.2010
0
Nuitka scheint ein vielversprechendes Projekt zu sein.
05.02.2011
Matthias 208 4

Stelle deine Html-Frage jetzt!
myfactory International GmbH
infounit Software GmbH
Sevitec Gruppe