Hallo allerseits,
ich habe ein simples Problem: Ich habe ein C++-Programm, in dem ich mit Python-Code interagieren will, genauergesagt:
- Ich will im C++-Programm ein Python-Modul im Arbeitsverzeichnis laden.
- Ein Objekt aus einer in diesem Modul definierten Klasse instanziieren und einige Members setzen.
- Eine Methode des Objektes ausführen und das Objekt danach entsorgen.
Ich habe bis jetzt direkt die Python C-API und boost:python versucht und scheitere bei beiden am gleichen Problem: Das importieren des Moduls, welches im Arbeitsverzeichnis liegt schlägt fehl mit dem ImportError, dass das Modul nicht existieren würde. Meine erste Idee war, dass vielleicht von Py_Initialize() PYTHONHOME nicht richtig exportiert wird und ich habe versucht, da mit putenv() noch das Arbeitsverzeichnis hinzuzufügen aber ohne Erfolg.
Eigentlich ist bis jetzt alles, was ich tue (reduziert auf das Nötigste):
Code: Alles auswählen
...includes...
using namespace boost::python;
void meineCFunktion() {
...
Py_Initialize();
object foobar = import("foobarModule");
...
}
Ich bin mit der C-API, bzw. boost da noch nicht wirklich firm und 90% der Beispiele, die man so ergooglet beschäftigen sich leider nicht mit dem Einbetten von Python sondern lediglich mit der umgekehrten Variante, Python-Module in C zu schreiben
Ich bin dankbar für jeden Hinweis.