On Saturday 15 November 2003 16:19, Bastian Müller wrote:
Hi!
Hi, Zeichensatz-Vernachlässiger :)
Ich möchte lediglich in ein simples Programm Python-Support einbauen , sodass ich z.B. Grundlegende Klassen erstelle und diese dann per Python-Skript nutzen kann. kann mir jemand vielleicht Tips oder direkten Source geben?
Es sind zwei verschiedene Konzepte, die hier zusammenspielen: - Erweitern (extending) - Einbetten (embedding)
Erweitern heißt, daß aus einer C- oder C++-Bibliothek eine Python-Bibliothek (Wrapper) wird. In C ist das nahezu trivial, jeder Funktion ist eine Python-Methode zugeordnet, in C++ ähnlich, aber schon schwieriger.
Einbetten ist nun das Ausführen von Skripten aus einer Anwendung heraus. Meist wird nur eine Methode aufgerufen, manchmal auch ein komplettes Skript, und nachher bekommt die Anwendung wieder die Kontrolle zurück. Wenn diese Skripte nun die Python-Klassen verwenden, die durch obiges Erweitern erstellt wurden, hast du einen Ansatz für eine skriptfähige Applikation.
Als Quelltextbeispiel kann ich mal auf meine Projekte verweisen, allerdings sind dort beide Konzepte getrennt behandelt.
Erweitern: http://cvs.sourceforge.net/viewcvs.py/ggz/playground/ggz-python/pyggzmod/src... pyggzmod_init.c?rev=1.3&view=auto
Einbinden (zusammen mit Perl und Ruby): http://cvs.sourceforge.net/viewcvs.py/ggz/grubby/grubby/modules/ embed.c?rev=1.10&view=auto
Die Dokumentation von python.org ist dazu eigentlich auch ausreichend, nur das Hoch- und Runterzählen von Referenzen kann eventuell Kopfzerbrechen bereiten.
Josef (An PyKamikaze bastelnd und es fast fertig habend...)