retrieve traceback in embedded python of Python3.0?

BigHand heweiwei at gmail.com
Fri Mar 6 22:43:05 EST 2009


On Mar 7, 11:40 am, BigHand <hewei... at gmail.com> wrote:
> Guys:
> I have a embedded python in MFC app. to execute a py script of a.py,
> the is only one line in a.py, it "a()" , normally ,excute this script
> file ,you will get a
>  "the exception type is<class 'NameError'> "
> "The exception value is name 'a' is not defined "
>
> Python3.0 with VS2005.
> here is the brief code:
> Py_Initialize();
> PyObject *m, *d, *v;
> m = PyImport_AddModule("__main__");
> d = PyModule_GetDict(m);
> v = PyRun_File(fp, pStr, Py_file_input, d, d);       //~~~the py
> script is a.py
> PyObject *exc_type = NULL, *exc_value = NULL, *exc_tb = NULL;
> PyErr_Fetch(&exc_type, &exc_value, &exc_tb);  //~~~after fetch , the
> exc_type, exc_value, exc_tb are not "NULL"
> PyObject * modTB = PyImport_ImportModule("traceback");
> PyObject* pyUStr = PyUnicode_FromString("format_exception");
> PyObject* listTB = PyObject_CallMethodObjArgs(modTB,  pyUStr,
> exc_type, exc_value, exc_tb, NULL);
>
> in the PyObject_CallMethodObjArgs(modTB,  pyUStr, exc_type, exc_value,
> exc_tb, NULL), I get modTB, pyUStr, exc_type, exc_value, exc_tb are
> not NULL, but the listTB is always NULL, I can retrieve the list...
>
> any body could enlight me?

it's "I can't retrieve the traceback list."



More information about the Python-list mailing list