记录一下pyqt5打包成EXE的一些关键点

1.安装pyinstaller在虚拟环境下安装:

pip install pyinstaller

这一步网上都有没啥特别的
2.安装完pyinstaller后,终端正常进入到你的脚本的所在路径,输入

pyinstaller -参数 -***.py

其中这边的参数有很多,网上也有帖子,大家可以去仔细查,这边的关键点在于如果你是第一次打包的话,尽量不要用到首先-F -W,-F时打包成一个EXE文件,如果你脚本过大,会造成打开时间过长的情况,-W是去掉命令行终端,新手打包最好不要用到-w,-w的作用是去掉命令行终端,也就是你软件运行时不会出现cmd命令,去掉的作用时让我们程序在运行在出现的错误都打印在终端,方便我们去查看哪些包错了或者哪些包缺失。 加入–paths C:/Users/**@@/anaconda3/envs/##@@/Lib/site-packages/PyQt5/Qt5/bin
我也不知道具体为啥,好像是为了索引到pyqt5的包,加入-D,使最后生成一个文件夹。这些就是我使用到的参数。
这边提一个小技巧:对于一些打包好软件,在打开过程中会出现一闪而过,无法捕捉终端错误信息的情况,大家可以拿手机录下来,然后一帧一帧的去找,这个技巧也是网上大佬传授的,很有用。
3.有关paddle库的槽点:
第一次在运行时,用视频捕捉到说打包好的文件里面paddle\fluide\libs找不到,网上查了以后到自己虚拟环境里面找到paddle的包把里面libs整个文件夹复制到打包好模型的paddle文件夹下:主程序在运行后又发现一直待在命令行,无法进入软件,同时任务管理器也有任务存在,一个下午都无法解决这类问题,后有大佬提到这时paddle的问题,根据大佬的提示,在paddle/dateset/Image.py文件里面将import cv2 的那一串数据注释掉,即把if-else语句删除,保留try语句后,发现终端已经可以打印出错误了,只要终端打印出错误,就能找到解决办法。
打包完以后,发现运行paddle文字识别会报sharely 和pycipller好像名字是这两库没有,解决办法就是到自己的环境把shareply文件夹复制到打包好的文件夹下,而pycipller除了一个文件夹还有一个.pyd的文件可以去搜一下,都要复制到打包好的文件夹里。这样就不会出错了。我使用的是paddlehub,如果电脑没有serve这些模型,他会自动下载,下次运行自动索引。
4.代码路径问题

self.label_background.setPixmap(QtGui.QPixmap('road_foreignbody/highway.jpg'))
self.setWindowIcon(QIcon('road_foreignbody/icon.ico'))
self.Webbrowser.load(QUrl(QFileInfo('road_foreignbody/aseaofpoints.html').absoluteFilePath()))

首先代码要使用绝对路径时肯定的,但是像我这样我打包完的文件名称不是road_foreignbody,他就找不到这些图片文件或者模型文件,解决办法是:
在打包好的文件夹里,创建一个这样的目录,这样的话,图像就能索引到了。
5.Qweb控件的错误:
报找不到resources和translations文件,去pyqt5的文件夹里面找到这两个文件夹,同样是复制。
问题解决,程序可以运行!!!
在打包命令里加入-i icon =.ico的图像路径,即可给软件加图标。应该是没错,这个也很好搜,大家可以去搜一下。

最后很多大佬听到了.spec文件还有一个Hidedenimport=[]的参数,其实就是.spec文件怎么用,这个还要研究。等下次打包的时候把。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值