Py_Initialize();
PyObject* code = Py_CompileString(text, "(text)", Py_single_input);
if (!code) {
PyErr_Print();
return;
}
不产生任何文本。我知道有一个 sys.stderror ,但是除了创建回调和自定义函数之外,是否没有更简单的方法来处理这个问题?
最佳答案
终于发现了这个:
PyObject *ptype, *pvalue, *ptraceback;
PyErr_Fetch(&ptype, &pvalue, &ptraceback);
PyObject* utf = PyUnicode_AsUTF8String(pvalue);
Assert(utf);
char* buffer = PyBytes_AsString(utf);
关于python - 如何从 Py_CompileString 打印出错误(包括语法)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28140461/