你如何从C ++程序运行python脚本?

时间:2016-05-23 20:26:15

标签: python c++

我已经能够找到一些我知道你需要包含Python.h并且你需要拥有的东西

Py_Initialize();
//code that runs the python script
Py_Finalize();

打开和关闭翻译,但那个中间部分让我输了。我可以在主题上找到的大多数信息使用带有一些参数的Py_SimpleString()命令。我一直在寻找,但我找不到任何明确解释该命令正在做什么或如何使用它的文档。

我不一定需要python脚本直接将值传递给C ++程序。它正在写入文本文件,C ++只能解析文本文件以获得所需的文件。我只需要运行.py文件并执行其功能。

感谢任何帮助!

2 个答案:

答案 0 :(得分:5)

在C ++程序中运行Python脚本的最简单方法是通过PyRun_SimpleString(),如this web page中的示例所示:

#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;
}

如果要运行存储在.py文件中的脚本而不是直接以字符串形式提供Python源文本,可以调用PyRun_SimpleFile()而不是PyRun_SimpleString()。

答案 1 :(得分:0)