Py_Finalize不会重置环境

时间:2016-07-10 13:51:00

标签: python c

我的C代码定期加载Python脚本并使用Python 3的高级绑定运行它。该脚本第一次运行正常但随后失败并出现语法错误,其中声明了唯一的变量。

该变量在我的脚本中声明为空列表,因此我猜测documentation注释表明 \renewcommand\thesection{} 没有正确重置某些库,这里不适用:

Python脚本中的相关行: Py_Finalize()

我的代码:

result = list()

我还尝试将PyObject *eval_module; PyObject *eval_dict; PyObject *eval_value; char *ret; Py_Initialize(); PyRun_SimpleString(script); eval_module = PyImport_AddModule((char *) "__main__"); eval_dict = PyModule_GetDict(eval_module); eval_value = PyDict_GetItemString(eval_dict, "output"); char *python_ret = PyBytes_AsString(eval_value); if(python_ret != NULL) { python_ret = strdup(python_ret); Py_Finalize(); return python_ret; } Py_Finalize(); return NULL; 放在Py_Finalize()之前,但没有帮助。

0 个答案:

没有答案