Python C C++如何联合编程
目录
- 严肃点
- 真实点
- 没有对比就没有选择困难
- 课程在哪里
- ctypes
- boost
- opencv
- 常见问题
严肃点
Python、C语言、C++联合编程,可以发挥出C、C++的性能和Python的便利,我相信这是很多人一直想要的功能。但是网络上一直没有几个课程来讲述这个问题,所以我做了几个视频,系统谈谈自己在联合编程实践中遇到的坑,抛砖引玉。
真实点
C语言、C++太难用了,要是一直能用Python该多好了,无奈自己的身处工业制造行业,很多工具仅仅提供C、C++的SDK,其余的编程语言一律不提供。完全用C、C++开发,开发速度较慢,自身能力不太行、领导容易不满,再加上人手不够,时间节点不能总是卡在我这里吧。万般无奈,思前想后的解决方式是对仅提供C、C++的SDK封装一层后,交由Python调用,大部分的业务逻辑还是Python来完成。这样做后,可以大大缩短工期,你好,我好,大家好。
没有对比就没有选择困难
在努力寻找联合编程的教程后,发现网络上的文章很杂很乱,又很少,捋不清头绪。不知道你是不是和像我一样,找教程而不得。如果有,我下面的文字,一定会对你有所帮助。
先来一份自己的总结表格,梳理网上常见的解决方案:
结论:
- 如果仅仅用C语言,那么用Python自带的ctypes库就蛮好用的;
- 如果需要用C++,那么用boost-python和pybind11都可以;
- 如果你是图像处理从业者,那么直接用opencv,就可以完成Python和C++的交互。
课程在哪里
ctypes
课程链接:Python ctypes和C语言交互
网易云课堂搜索:ctypes
boost
课程链接:boost python和C++交互
网易云课堂搜索:boost
opencv
课程链接:编译自己的opencv-python
网易云课堂搜索:opencv-python
常见问题
pybind11是现代的C++,boost-python历史包袱太重,选择哪一个?
我目前用的是boost-python,很重要原因是自带的boost-numpy库,可以很方便的和Python numpy进行交互,帮助文档也较全。写Python的,对numpy库肯定不陌生,它太重要了。
boost被人诟病的一点就是编译太复杂,容易出错,我将在课程中论述其中的注意事项,我相信你学完后,会觉得编译其实很简单。
为什么opencv这个图像库也入选了?
opencv对于Python的封装,本来就是基于numpy,而且官方的源码也清楚明白,如果你经常使用opencv库,直接看这个课程,肯定可以拓展你的技能树。
以上是 Python C C++如何联合编程 的全部内容, 来源链接: utcz.com/z/386518.html