记录一点关于python的c++拓展的知识点

python和c++那点事儿

这个博客我觉得写得挺好,从简单例子给我们展示了一般会用到的几种扩展方式,如torch.util.cpp_extension,.pyx,distutils.extension,还有pybind11,直接调用动态库等。
点这里看

学习一下的缘由

其实,我是在复现一篇基于faster rcnn的代码时遇到的问题,由于是基于torch0.3,所以使用了torch,util.cffi来扩展c++,但是这个却在后面的torch版本中被淘汰了,所以我就索性把这个拓展方式改成高版本的torch支持的方式了,顺便补一下这方面的知识,之前一直pull代码按傻瓜教程操作,不明觉厉。

主要改动就是在cffi中只需要给出c++操作或者层的c/cpp源码以及cuda源码,按照cffi.create_extension操作就行,再build一下。改成高版本后,需要在此c/cpp源码中增加pybind11的接口说明,然后最好将c改成cpp,也就是加入extern "C"说明。

另外pyx方式也挺简单,只需要利用cython写一个python和c的脚本引用所需要的c源码就可以,然后就可以利用distuitils包装再利用setuptools来编译就行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值