C++ 嵌入 Python 调用详解
在现代软件开发中,性能(C++)与灵活性(Python)的结合是许多大型项目的首选方案。无论是游戏引擎还是高性能计算工具,通过在 C++ 中嵌入 Python 脚本,可以让用户在不重新编译程序的情况下编写插件或逻辑。
为什么要嵌入 Python?
- 脚本化:允许用户自定义逻辑。
- 快速原型:利用 Python 丰富的库(如 NumPy, SciPy)处理数据,而核心逻辑保持在 C++ 中。
- 逻辑分离:将频繁变动的业务逻辑放在脚本层,核心底层放在 C++ 层。
环境配置
要在 C++ 中使用 Python API,你需要:
- 头文件:
Python.h(位于 Python 安装目录的include文件夹)。 - 库文件:
python3x.lib(Windows)或libpython3x.so(Linux)。
注意:确保你的 C++ 编译位数(x64/x86)与 Python 安装版本一致,否则会报链接错误。
第一步:最简实现 Hello World
我们先从最简单的初始化和运行一段 Python 代码开始。
#include <Python.h>
#include <iostream>
int main() {
// 1. 初始化 Python 解释器
Py_Initialize();
if (!Py_IsInitialized()) {
std::cerr << "Python 初始化失败!" << std::endl;
return -1;
}
// 2. 执行简单的 Python 语句
PyRun_SimpleString("print('Hello from Python! I am embedded in C++.')");
PyRun_SimpleString("import platform; print('Python Version:', platform.python_version())");
// 3. 释放资源
Py_Finalize();
return 0;
}
第二步:进阶——调用 Python 函数并传递参数
在实际项目中,我们通常需要加载一个 文件,并调用其中的特定函数。

