C++内嵌Python混合编程

起因

我们软件产品内置了脚本功能,软件提供了若干脚本接口,用来给用户扩展。最近项目上有一些功能用Python实现很快,所以开始尝试内嵌Python.

过程

这里记录下整个过程,以便加深印象,帮助后续的深入应用;

要实现的效果,C++中执行Python脚本,可以获取脚本执行结果,脚本中可以调用C++定义的函数,即实现C++和Python脚本的互相调用

1.安装Python,这个很顺,用官网最新的安装包安装即可;我选择的windows 32位版本;

2.QtCreator建立工程,引用Python安装目录中include和lib,然后编译,这里遇到很多问题


注意点如下,遇到的问题可能有遗漏:

include目录中少inttype.h,我用的VC没有这个文件,然后重mingc的include中找到,改了改放到VC的include目录中,不再提示少文件;

Qt的slots宏重定义,修改.h文件;从网上找来的解决方法;

debug没有lib库的问题,将python32.lib复制该名python32d.lib,类似方法解决;

提示未定义的各个py链接,这里原因Python是64位,我的程序是32位,肯定不行,卸载Python重新安装32位,编译通过;

支持编译的环节通过了,开始跑脚本,又出现很多问题;

baidu查了很久,C++和Python调用的文章很多,但是Python脚本中调用C++代码,很少,大部分没用成,花了几个显示解决脚本调用C++函数的方法,终于在一个英文的文章中找到,虽然看的一知半解但是解决问题了。

运行效果

C++内嵌python测试

C++内嵌python测试2

VC环境缺少的h文件

VC少的三个文件,我是重Qt mingw环境中拷贝出来,放到VC 9的include目录中,编译不通过又做了少量修改;

 

 

解决问题

技术预研就是会遇到各种问题,这里是我遇到的问题和解决方法,有一些也许没记录,不同的人不同的环境总是差别很大,需要自己根据实际解决。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值