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

2021/4/13 12:26:03

本文主要是介绍记录一点关于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来编译就行。



这篇关于记录一点关于python的c++拓展的知识点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程