如何在C ++应用程序中加载和执行python脚本

时间:2013-12-09 17:38:50

标签: c++ python c

我想扩展我的应用程序,它是用C ++编写的,使用python脚本(扩展)。我最初想要使用TCL,就像他们在xchat中所做的那样,但后来我决定使用python,因为它看起来很受欢迎。

但是,我无法加载和执行非常简单的python脚本。我跟着http://docs.python.org/2/extending/embedding.html

当我提供要作为pName参数加载的脚本文件名时,我从PyErr_Print得到的错误是:ImportError:不支持按文件名导入。

阅读文档,我想我可能需要运行PyImport_ExecCodeModule,但是这个C函数需​​要2个参数,1个是char *(可能是模块的名称),另一个是编译的python代码,根据我可以通过调用python函数compile()来获取文档。不幸的是,它并没有说我如何在我的C ++代码中使用C api来调用这个python函数。理想情况下,我会想象做像

这样的事情
PyObject *code = PyCompile("print (\"hello :)\"");

但是我找不到像PyCompile这样的函数,也没有任何其他的C-api函数可以让我执行python内部函数(比如编译)并将其输出作为PyObject来获取。

所以,问题是:如何从文件(something.py)轻松加载python脚本并使用嵌入式python解释器在我的应用程序中执行它?

0 个答案:

没有答案