之前一直从事c++相关算法及代码的相关工作,因公司内部代码管理需要,需将算法封装待python平台使用,根据此需求,对python调用c++代码的方式进行了学习,最终综合考虑封装难度及多代码管理使用pybind11进行了相关功能的实现。
pybind11是一个用于c++与python之间相互调用和数据交互的库
以我自己的算法为例介绍一下pybind11的基本使用,我的调用算法中还包含了其他的c++库,例如opencv,此处还出现了一个我没想到的bug后续会介绍。
Windows系统
Requires
win10,64bit
Visual Studio2015
python3.6(Anaconda)
pybind11安装
下载pybind11源码,获取其头文件,下载地址:https://github.com/pybind/pybind11
因其为Head-only形式的,不需要编译动态库,直接使用include即可。

demo应用测试
1、创建Vistual Studio工程,将需要调用的c++代码放入其中
设置项目类型及输出文件类型,分别为.pyd及dll

这篇博客介绍了如何使用pybind11在Python中调用C++代码,包括在Windows环境下配置环境,安装pybind11,创建和编译C++库,以及在Python端进行调用。作者还分享了在测试过程中遇到的如PYBIND11_MODULE名称匹配、opencv Mat类型传递等问题及其解决方案。
最低0.47元/天 解锁文章
3759





