Objekte in Embedded Interpreter reinladen
Verfasst: Donnerstag 8. Mai 2008, 01:42
Hallo,
ich arbeite an einem Program dass Daten zwischen verschiedenen Scripting- Umgebungen austauschen soll.
Ich habe den Austausch von Python -> Matlab zum laufen gebracht.
Der User kann ein Python Objekt nach Matlab kopieren / referenzieren und dann Matlab anweisungen auf der Kopie/ Referenz laufen lassen, danach das Objekt wieder zurueck nach Python holen. Die Bruecke ist in C++ gehalten.
Jetzt will ich das ganze in die andere Richtung machen Matlab -> Python, aber da muss ich sagen ist Python schon noch Matlab recht hinterher was das angeht.
Mein Ziel ist ganz einfach.
Ich habe ein PyObject und will es in einen embedded Interpreter reinladen, so dass der User mit python Kommandos auf dem Objekt arbeiten kann, von Matlab aus.
Da es im Gegensatz zu Matlab scheinbar keine Funktion in Python gibt die folgerndermassen heissen koennte:
PyObj_Put_Object_Into_Interpreter(PyObject* obj, char* name)
dass der User das Objekt dann in der Konsole mit Python Anweisungen bearbeiten kann
>>> name = name *5 zum Beispiel
habe ich verschiedene andere Ansaetze ausprobiert, mit static Variablen die dann als Modul geladen werden. Geht alles nicht. Ich bezweifle dass ich der Erste mit dem Problem bin. Habe aber bisher noch keinen Link gefunden wo ein aehnliches Problem diskutiert wurde.
Die Boost Libraries sollen als wirklicher Verzweifluns-akt benutzt werden, wobei die nicht generisch genug sind fuer mein Problem, da ich hauptsaechlich mit Numpy Objekten arbeiten will. Ausserdem soll das ganze schlank bleiben.
Zusaetzlich will ich die ganzen Funktionen wie PyImport_ImportModule und PyEval_CallObject nicht benutzen weil das mit aller Warscheinlichkeit den User einschraenken wuerde.
Hat jemand eine Idee? Im Endeffekt ist sollte das wirklich nicht so schwer sein. Wie so vielles...
Thomas
ich arbeite an einem Program dass Daten zwischen verschiedenen Scripting- Umgebungen austauschen soll.
Ich habe den Austausch von Python -> Matlab zum laufen gebracht.
Der User kann ein Python Objekt nach Matlab kopieren / referenzieren und dann Matlab anweisungen auf der Kopie/ Referenz laufen lassen, danach das Objekt wieder zurueck nach Python holen. Die Bruecke ist in C++ gehalten.
Jetzt will ich das ganze in die andere Richtung machen Matlab -> Python, aber da muss ich sagen ist Python schon noch Matlab recht hinterher was das angeht.
Mein Ziel ist ganz einfach.
Ich habe ein PyObject und will es in einen embedded Interpreter reinladen, so dass der User mit python Kommandos auf dem Objekt arbeiten kann, von Matlab aus.
Da es im Gegensatz zu Matlab scheinbar keine Funktion in Python gibt die folgerndermassen heissen koennte:
PyObj_Put_Object_Into_Interpreter(PyObject* obj, char* name)
dass der User das Objekt dann in der Konsole mit Python Anweisungen bearbeiten kann
>>> name = name *5 zum Beispiel
habe ich verschiedene andere Ansaetze ausprobiert, mit static Variablen die dann als Modul geladen werden. Geht alles nicht. Ich bezweifle dass ich der Erste mit dem Problem bin. Habe aber bisher noch keinen Link gefunden wo ein aehnliches Problem diskutiert wurde.
Die Boost Libraries sollen als wirklicher Verzweifluns-akt benutzt werden, wobei die nicht generisch genug sind fuer mein Problem, da ich hauptsaechlich mit Numpy Objekten arbeiten will. Ausserdem soll das ganze schlank bleiben.
Zusaetzlich will ich die ganzen Funktionen wie PyImport_ImportModule und PyEval_CallObject nicht benutzen weil das mit aller Warscheinlichkeit den User einschraenken wuerde.
Hat jemand eine Idee? Im Endeffekt ist sollte das wirklich nicht so schwer sein. Wie so vielles...
Thomas