I am having trouble with the following code:

PyObject *module = PyImport_ImportModule(modulename);
if (module == NULL) {
PyObject* et, *ev, *etr;
PyErr_Fetch(&et, &ev, &etr);
PyObject* traceback = PyImport_ImportModule("traceback");
PyObject* tb = PyObject_CallMethodObjArgs(traceback, PyString_FromString("format_exception"), et, ev, etr, NULL);
char *message = PyString_AsString(PyObject_Str(tb));
...
...
}

When this code executes, it gets into the "module == NULL" condition. However, when I try to get the exception that occurred, I get the value "<NULL>" copied into the "char* message" variable.

Can anyone shed some light on what might cause this to happen? I thought that if I actually get into that NULL condition that an exception has occurred.

--
Craig Slusher
cslush@gmail.com