Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从Py_CompileString打印错误(包括语法)?_Python_Visual Studio 2010 - Fatal编程技术网

Python 如何从Py_CompileString打印错误(包括语法)?

Python 如何从Py_CompileString打印错误(包括语法)?,python,visual-studio-2010,Python,Visual Studio 2010,不生成任何文本。我知道有一个sys.stderror,但是除了创建回调和自定义函数之外,没有更简单的处理方法了吗?最终发现了这一点: Py_Initialize(); PyObject* code = Py_CompileString(text, "(text)", Py_single_input); if (!code) { PyErr_Print(); return; } 完整性,然后是Py_DECREF(utf);Py_DECREF(ptype);Py_XDECREF(p

不生成任何文本。我知道有一个
sys.stderror
,但是除了创建回调和自定义函数之外,没有更简单的处理方法了吗?

最终发现了这一点:

Py_Initialize();
PyObject* code = Py_CompileString(text, "(text)", Py_single_input);
if (!code) {
    PyErr_Print();
    return;
}

完整性,然后是
Py_DECREF(utf);Py_DECREF(ptype);Py_XDECREF(pvalue);Py_XDECREF(ptraceback)注意:
pvalue
ptraceback
可能是
NULL
,因此使用
Py\uxdecref
,并且
pvalue
char*
的转换应使用
if(pvalue!=NULL){…}
进行保护。
    PyObject *ptype, *pvalue, *ptraceback;
    PyErr_Fetch(&ptype, &pvalue, &ptraceback);
    PyObject* utf = PyUnicode_AsUTF8String(pvalue);
    Assert(utf);
    char* buffer = PyBytes_AsString(utf);