python - 如何从 Py_CompileString 打印出错误(包括语法)?

标签 python visual-studio-2010

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/

相关文章:

python - 调用函数时的参数列表

python - 如果使用 'AllowAny' 权限类,如何防止 Django Rest Framework 验证 token ?

visual-studio-2010 - 如何自动缩进源代码?

c# - VSIX:获取 DTE 对象

c# - 在 VS 2012 中分析

python - Python中的1000位pi

python - 重命名多索引数据框 Pandas

python - Unicode解码错误: 'utf-8' codec can't decode byte error

c# - 调试 COM 对象析构函数时发生奇怪的崩溃

vb.net - LINQ 存储过程返回值到字符串数组?