1. C++ 代码封装成插件或库供 Python 调用
C++ 代码完全可以封装成插件或库,供 Python 调用。这是 Python 生态中非常常见且成熟的做法,尤其在需要高性能计算、调用底层系统功能或复用已有 C/C++ 代码时。
以下是几种主流方法:
方法一:使用 pybind11(最推荐)
pybind11 是一个轻量级、现代的 C++ 库,专为将 C++ 代码暴露给 Python 而设计。语法简洁,支持 C++11 及以上特性(如类、重载、STL 容器等)。
示例步骤:
- 编写 C++ 代码(example.cpp)
#include <pybind11/pybind11.h>
int add(int a, int b) {
return a + b;
}
PYBIND11_MODULE(example, m) {
m.doc() = "pybind11 example plugin";
m.def("add", &add, "A function that adds two numbers");
}
- 编译为 Python 模块(使用 setup.py)
from setuptools import setup, Extension
from pybind11.setup_helpers import Pybind11Extension, build_ext
ext_modules = [
Pybind11Extension("example", ["example.cpp"]),
]
setup(
name="example",
ext_modules=ext_modules,
cmdclass={"build_ext": build_ext},
zip_safe=False,
)
- 构建并安装
pip install pybind11
python setup.py build_ext --inplace
- 在 Python 中调用
import example
print(example.add(2, 3)) # 输出 5

