C++ QT调用python脚本并将软件打包发布

         对我来说主要就是打包的问题比较难解决,弄了一个下午都没解决,不知道是minconda的问题,还是Qt更新的原因,网上的很多解决方法都不行,经过排查,发现是少导入了一个文件夹。

        怎么调用python脚本就不详细说了,网上有很多教程,主要说一下打包发布的流程。

打包发布流程:

1.制作python环境文件夹,我软件开发使用的是python3.8。所以新建一个文件夹,命名为 “Python38”。

2.我用的是miniconda,我的miniconda环境目录如下:

f43862b689904ddd99fbc9c13dd687ad.png

3.最关键的一步,将minconda环境文件夹内的DLLs、include、Lib、libs、tcl文件夹和所有.Dll文件拷贝到第一步新建的Python38文件夹内,复制好后如下图(网上的解决方法都没有复制tcl文件夹,所以我试了好多方法都运行不了):

 aca42a7b25e04ad998c2d48a8a38c73b.png

4.  .在C++代码中使用Py_SetPythonHome 函数指定python库解释器的路径,然后再初始化python编译器,之后就可以调用自己的python代码(网上有很多教程)。

Py_SetPythonHome((wchar_t *)(L"./python38"));//指定python库解释器的路径
Py_Initialize();  //初始化python解释器,告诉编译器要用的python编译器

5.然后创建一个空文件夹作为打包文件夹,将代码生成的QT可执行程序拷贝到打包文件夹下,再使用windeployqt xxx.exe来打包(我用的是visual studio所以用MSVC)

125754ab584646bc98b3254f3edf5487.png509d50a178644f2bafb028eee0325761.png

6.最后将你的python3.dll、python38.dll、刚刚制作的Python38文件夹和你要调用的.py文件复制到刚刚的打包文件夹下,最终打包好的文件夹如下:

 ​​​​405d01abefc6444eb8a951567680cb8e.png

 经检验,在其他没有配置环境的计算机上也可以运行此程序。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值