python c 联合_Python C C++如何联合编程

严肃点

Python、C语言、C++联合编程,可以发挥出C、C++的性能和Python的便利,我相信这是很多人一直想要的功能。但是网络上一直没有几个课程来讲述这个问题,所以我做了几个视频,系统谈谈自己在联合编程实践中遇到的坑,抛砖引玉。

真实点

C语言、C++太难用了,要是一直能用Python该多好了,无奈自己的身处工业制造行业,很多工具仅仅提供C、C++的SDK,其余的编程语言一律不提供。完全用C、C++开发,开发速度较慢,自身能力不太行、领导容易不满,再加上人手不够,时间节点不能总是卡在我这里吧。万般无奈,思前想后的解决方式是对仅提供C、C++的SDK封装一层后,交由Python调用,大部分的业务逻辑还是Python来完成。这样做后,可以大大缩短工期,你好,我好,大家好。

没有对比就没有选择困难

在努力寻找联合编程的教程后,发现网络上的文章很杂很乱,又很少,捋不清头绪。不知道你是不是和像我一样,找教程而不得。如果有,我下面的文字,一定会对你有所帮助。

先来一份自己的总结表格,梳理网上常见的解决方案:

2e5d5059459df5b441620ee013040880.png

结论:

如果仅仅用C语言,那么用Python自带的ctypes库就蛮好用的;

如果需要用C++,那么用boost-python和pybind11都可以;

如果你是图像处理从业者,那么直接用opencv,就可以完成Python和C++的交互。

课程在哪里

ctypes

课程链接:Python ctypes和C语言交互

网易云课堂搜索:ctypes

474b83373bbb66b2e44110e00dbd1552.png

boost

课程链接:boost python和C++交互

网易云课堂搜索:boost

24fdd37dc2ed3e1468e9b232cac7da81.png

opencv

课程链接:编译自己的opencv-python

网易云课堂搜索:opencv-python

5ff30bca927f98e2c7518fdaa406c57c.png

常见问题

pybind11是现代的C++,boost-python历史包袱太重,选择哪一个?

我目前用的是boost-python,很重要原因是自带的boost-numpy库,可以很方便的和Python numpy进行交互,帮助文档也较全。写Python的,对numpy库肯定不陌生,它太重要了。

boost被人诟病的一点就是编译太复杂,容易出错,我将在课程中论述其中的注意事项,我相信你学完后,会觉得编译其实很简单。

为什么opencv这个图像库也入选了?

opencv对于Python的封装,本来就是基于numpy,而且官方的源码也清楚明白,如果你经常使用opencv库,直接看这个课程,肯定可以拓展你的技能树。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值