pybind11 简单完整示例

目录

1. 准备工作

2. 示例代码

3. 编译和使用


部分细节未展现,感兴趣可留言!

完整代码可在资源中免积分下载

1. 准备工作

推荐在docker中运行

  • 安装pybind11
pip install pybind11
  • 安装cmake
sudo apt update  
sudo apt install cmake

2. 示例代码

        1. 编写C++源文件

// example.cpp  
#include <pybind11/pybind11.h>  
  
int add(int a, int b) {  
    return a + b;  
}  
  
namespace py = pybind11;  
  
PYBIND11_MODULE(example, m) {  
    m.doc() = "pybind11 example plugin"; // optional module docstring  
    m.def("add", &add, "A function which adds two numbers");  
}

        2. 编写CMakeLists.txt

        注意: 和cpp位于同一目录,如果报错找不到pybind11,需要指定pybind11的路径(详细方法见评论区)

# CMakeLists.txt  
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)  
project(example)  
  
find_package(pybind11 REQUIRED)  
pybind11_add_module(example example.cpp)

3. 编译和使用

        完成简单的开发工作后,编译代码即可得到对应so,so可直接导入python使用

        1. 编译:        

mkdir build  
cd build  
cmake ..  
make

        编译成功后,得到example.cpython-38-x86_64-linux-gnu.so(Linux平台),其中38代表python版本为3.8, windows平台将得到example.cp38-win_amd64.pyd 

        2. 在python端导入so

import example # 对应so的名字

result = example.add(2, 3)  
print(result)  # 输出: 5

          将编译得到的.so文件放在Python能够搜索到的路径中,如项目目录或Python的site-packages路径,或者任意路径(设置环境变量PYTHONPATH指向so即可)

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值