Python调用C++,可以通过Pybind11制作Python接口。下面我们将为大家详细讲解如何制作Python接口,包括具体步骤及两个示例说明。
步骤
1、安装Pybind11
Pybind11是Python调用C++的一个模块,需要先安装。可以通过pip安装,命令如下:
pip install pybind11
2、定义函数
首先,需要在C++中实现想要在Python中调用的函数。
示例1:计算两个数的和
int add(int a, int b) {
return a + b;
}
示例2:求一个数的平方
double square(double x) {
return x * x;
}
3、使用Pybind11
使用Pybind11将C++函数导出为Python模块。需要再定义一个包装函数,用于将C++函数转化为Python可以识别的函数。
示例1:
#include <pybind11/pybind11.h>
int add(int a, int b);
PYBIND11_MODULE(example, m) {
m.doc() = "pybind11 example plugin"; //模块的文档字符串
m.def("add", &add, "A function which adds two numbers");
}
使用以上代码将C++函数add()导出为Python模块example中的一个函数,该函数名称与C++中的函数名称保持一致。
示例2:
#include <pybind11/pybind11.h>
double square(double x);
PYBIND11_MODULE(example, m) {
m.doc() = "pybind11 example plugin"; //模块的文档字符串
m.def("square", &square, "A function which computes the square of a number");
}
使用以上代码将C++函数square()导出为Python模块example中的一个函数,该函数名称与C++中的函数名称保持一致。
4、构建和安装模块
最后,需要将C++代码编译成Python可执行模块。可以使用CMake来构建模块。
在example文件夹中,创建CMakeLists.txt,内容如下:
cmake_minimum_required(VERSION 3.15)
project(example LANGUAGES CXX)
find_package(pybind11 REQUIRED)
pybind11_add_module(example example.cpp)
在命令行中进入example文件夹,执行以下命令:
mkdir build
cd build
cmake ..
make
执行以上命令后,在build文件夹中会生成example.so文件。
将example.so文件安装到Python中:
pip install .
执行以上命令后,就可以在Python中使用示例1、示例2中的函数了。
示例
示例1
import example
print(example.add(1, 2))
输出结果为:3
示例2
import example
print(example.square(2.0))
输出结果为:4.0
以上就是使用Pybind11制作Python接口的完整攻略及两个示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python调用C++,通过Pybind11制作Python接口 - Python技术站