参考官方文档:https://pybind11.readthedocs.io/en/stable/index.html
Pybind11 是什么?
当你在 Python 中编写的应用程序运行过慢,而又不想完全抛弃 Python 生态时,Pybind11 就像一座桥梁,将 C++ 的高性能代码'嫁接'到 Python 环境中。你可以直接用 Python 调用 C++ 函数,相当于请了一位跑得飞快的帮手来干活。
主要功能包括:
- 绑定函数:把 C++ 函数暴露给 Python 使用。
- 传递数据:实现 Python 和 C++ 之间的无缝传值。
- 扩展模块:生成一个标准的 Python 模块,导入即用。
准备工作
安装依赖
需要 C++ 编译器(Windows 用 MSVC,Mac/Linux 用 gcc/clang)。通过 pip 安装 Pybind11:
pip install pybind11
检查安装是否成功,命令行输入 python -m pybind11 --includes,会返回头文件路径(例如 -I/.../pybind11/include)。
同时确保已安装 Python(推荐 3.x 版本)和 CMake(用于生成项目构建文件),可通过 pip install cmake 或官网下载。
编写示例 C++ 文件
新建 example.cpp,定义一个简单的加法函数:
int add(int a, int b) {
return a + b;
}
我们的目标是让 Python 能够调用这个 add 函数。
基础绑定:让 Python 用上 C++
修改 C++ 源文件
在 example.cpp 中添加 Pybind11 的宏定义:
#include <pybind11/pybind11.h>
int add(int a, int b) {
return a + b;
}
PYBIND11_MODULE(example, m) {
m.doc() = "一个简单的加法模块"; // 模块描述
m.def("add", &add, , pybind11::(), pybind11::());
}


