我正在尝试将python嵌入到c中以用于配置:
如果我这样做:
/******************************************************************************
*
* Embeding Python Example
*
* To run:
* gcc -c test.c -o test.o -I"C:/Python25/include"
* gcc -o test.exe test.o -L"C:/Python25/libs" -lpython25
* test.exe
*
******************************************************************************/
#include <Python.h>
int main(int argc, char *argv[])
{
PyObject *run;
PyObject *globals = PyDict_New();
PyObject *locals = PyDict_New();
Py_Initialize();
run = PyRun_String("from time import time,ctime\n"
"print 'Today is',ctime(time())\n"
"test = 5\n"
"print test\n", Py_file_input, globals, locals);
Py_Finalize();
return 0;
}
<>我从微软VisualC++运行时得到运行时错误,这个消息:
^{pr2}$
我做错什么了?在
在初始化Python引擎之前,要创建2个Python对象。在
还有,那很傻。有很多用于C的JSON解析器
你做错的正是我做错的事。在
您正在初始化您自己的
globals
字典为空。这意味着即使是__import__
之类的内容也没有为当前范围定义。在在您的简单示例中,您可以替换
与
^{pr2}$您可能还想完全删除}。在
globals
和{如果我知道如何访问默认全局参数dict,我将在这里添加注释或编辑。在
编辑:实现
PyRun_SimpleStringFlags
(Python2.7.3)如下所示:因此,要获得默认的全局参数dict,您必须导入
__main__
并获取其字典。这将包含所有默认的内置函数等相关问题 更多 >
编程相关推荐