我基本上想看看是否可以将Python代码编译成C ++程序,以便生成单个二进制文件,然后使用C ++代码中的函数调用(编译的)python代码。
背景:我有一个C ++代码可以完成一些工作并生成我想要绘制的数据。然后,我使用SciPy编写了一个单独的Python脚本,该脚本读取输出数据,处理它并将其绘制到文件中。这一切都按原样运作。
基本上,我想象的是:
void plotstuff() {
my_python_func(); // This is the python script compiled into the c++ binary
}
我不需要在python代码和C ++代码之间传递任何东西,除了确保它在同一目录中执行。如果我可以传递字符串参数,它可能会使事情变得更容易,但是再次 - 不是必需的。
这可以实现吗?或者它通常是一个坏主意,我应该坚持让我的C ++和python分开?
答案 0 :(得分:5)
是:这称为嵌入。
最好的起点是the official Python documentation on the topic。有一些示例代码显示如何从C代码调用Python函数。
这是一个非常基本的例子,也来自Python文档:
#include <Python.h>
int
main(int argc, char *argv[])
{
Py_SetProgramName(argv[0]); /* optional but recommended */
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print 'Today is',ctime(time())\n");
Py_Finalize();
return 0;
}
答案 1 :(得分:0)