如何从C++程序中运行Python脚本?

5

我已经找到了一些信息。我知道你需要包含Python.h,还需要有

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

我知道如何打开和关闭解释器,但是其中间的部分让我迷惑不解。我在该主题上找到的大部分信息都使用Py_SimpleString()命令及其一些参数。我已经搜索了一段时间,但是找不到任何明确解释该命令正在执行什么或如何使用它的文档。

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

感谢任何帮助!

2个回答

11

在C++程序中运行Python脚本的最简单方法是使用PyRun_SimpleString()函数,可以参考这个网页上的示例代码。

#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()。


2
你需要将Python库链接到你的应用程序中才能使其正常工作。假设你已经完成了这一步,你就不需要在计算机上单独安装Python,因为它将使用内置于你的应用程序可执行文件中的Python解释器。(但是你需要确保任何你想要导入的.py文件存在于Python加载路径中的某个文件夹中) - Jeremy Friesner


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接