Seite 1 von 1

Python gleichzeitig einbetten und erweitern

Verfasst: Sonntag 4. Oktober 2009, 01:31
von Martin Kalbfuß
Hi,

Ist es möglich ein in C geschriebenes Python-Erweiterungsmodul statisch in ein Programm einzulinken und es dann von einem eingebetteten Pythoninterpreter aus zu nutzen?

Verfasst: Sonntag 4. Oktober 2009, 14:29
von Martin Kalbfuß
OK. Es geht. So weit so gut. :)

Was mich jetzt aber wundert ist folgendes. Ich bin der Anleitung zum einbetten von Python gefolgt und habe folgenden Code geschrieben:

Code: Alles auswählen

  PyObject *pName = PyUnicode_FromString("hallo");
  PyObject *pModule = PyImport_Import(pName);
  Py_DECREF(pName);
  if (pModule == NULL)
    {
      PyErr_Print();
      exit(EXIT_FAILURE);
    }
Wenn ich mein Programm ausführe teilt es mir mit, dass das Modul hallo nicht zu finden sei. Ich habe jedoch eine datei hallo.py im selben Verzeichnis in dem sich auch das Programm befindet. Dieses ist auch das Ausführungsverzeichnis. Ich sehe keinen Unterschied zum Beispiel in der Doku.

Woran liegt's?

Ich benutze übrigens 3.1.

Verfasst: Sonntag 4. Oktober 2009, 15:25
von Martin Kalbfuß
PySys_SetPath(L".");

ist die Lösung. Das aktuelle Vezeichnis ist wohl nicht im Suchpfad inbegriffen.