C++如何调用Python脚本?C++与Python混合编程指南【实战教程】

admin 百科 13
C++调用Python脚本需嵌入解释器,核心是初始化、传参、捕获输出与正确清理。须安装对应Python开发包,用PyRun_SimpleFileEx运行脚本(需绝对路径),或封装函数后通过PyImport_ImportModule等API安全交互,并注意多线程、字符串编码及动态库依赖。

C++如何调用Python脚本?C++与Python混合编程指南【实战教程】-第1张图片-佛山资讯网

用C++调用Python脚本,核心是嵌入Python解释器,不是简单“执行命令行”。关键在初始化解释器、传递参数、捕获输出、正确清理——否则容易崩溃或内存泄漏。

一、前提准备:确保Python开发环境可用

必须安装对应版本的Python开发包(含头文件和链接库):
• Linux:安装 python3-dev(如 sudo apt install python3.10-dev
• macOS:用Homebrew安装Python时默认带头文件,检查 /opt/homebrew/include/python3.x/
• Windows:推荐用官方Python安装包(勾选“Add Python to PATH”和“Download debug symbols”),并确认 python3x.libPython.h 可被找到

二、基础调用:运行.py文件并传参

使用 PyRun_SimpleFileEx() 最直接。注意:需先初始化解释器,且脚本路径必须是绝对路径。

示例C++代码片段:

  // 初始化(仅一次)
  Py_Initialize();
  PyRun_SimpleString("import sys");
  // 添加当前目录到Python路径(让import生效)
  PyRun_SimpleString("sys.path.append('./')");

  // 打开并执行脚本
  FILE* fp = fopen("script.py", "r");
  if (fp) {
    PyRun_SimpleFileEx(fp, "script.py", 1);
    fclose(fp);
  }

  // 清理
  Py_Finalize();

三、安全交互:传参 + 捕获输出 + 错误处理

直接运行脚本无法获取返回值。更健壮的做法是:把Python逻辑封装成函数,用C++调用它,并重定向sys.stdout来捕获输出。

标签: linux python windows 编码 app mac c++ macos win 开发环境 cos pyt

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~