PyQt5通过pyinstaller打包成可执行文件以及图标不生效问题的解决方案

pyinstaller

安装pyinstaller

pipenv install pyinstaller

或者通过pip安装

pip install pyinstaller

在这里插入图片描述

基本常用参数

–i 图标路径
-F 打包成一个exe文件
-w 使用窗口,无控制台
-c 使用控制台,无窗口
-D 创建一个目录,里面包含exe以及其他一些依赖性文件
-h 查看参数

PyQt5通过pyinstaller打包成可执行文件以及图标不生效问题的解决方案_第1张图片

打包图标失效问题

通过qrc将其转换为py文件后再导入使用即可解决这个问题

# test.qrc
<RCC>
    <qresource prefix="/">
        <file>icon.ico</file>
     </qresource>
</RCC>

通过下面命令即可完成py文件转换

pyrcc5 -o query_ico_rc.py test.qrc

转换后图片资源被转换为二进制形式
PyQt5通过pyinstaller打包成可执行文件以及图标不生效问题的解决方案_第2张图片
然后直接引入上面转换的文件即可

# main.py
import query_ico_rc
...
self.setWindowIcon(QIcon(':/icon.ico'))

通过pyinstaller打包-i参数不生效的问题

首先要排除你.ico图标的路径问题,如果使用相对路径不成功,可以试试绝对路径,其次因为.ico图标有大小尺寸的,所以你转换成的.ico会因为大小而使得你所打包的应用程序的图标显示不全,
PyQt5通过pyinstaller打包成可执行文件以及图标不生效问题的解决方案_第3张图片
对于windows平台,这里的选项会导致你的图标显示出现问题,所以最佳的解决方案就是多帧ico,这里推荐ToYcon这个软件可以制作多帧ico

下载地址:
https://toycon.en.softonic.com/
PyQt5通过pyinstaller打包成可执行文件以及图标不生效问题的解决方案_第4张图片
PyQt5通过pyinstaller打包成可执行文件以及图标不生效问题的解决方案_第5张图片
配置好以后直接将你要转换的资源文件往里拖就可以完成转换!

现在再通过pyinstaller通过-i参数打包不出意外图标即可生效!

关于生成的可执行程序文件太大

首先优化源码,没有使用的包尽量不要导入,还有导入尽量精准
比如

from PyQt5.Qt import *

这种导包就是大忌,因为非常多的我们都没有用到,生成的时候就会非常大

其次可以通过upx压缩,
项目地址:https://github.com/upx/upx/releases/

在使用pyinstaller的时候通过 --upx-dir参数指定upx.exe的位置即可!

你可能感兴趣的:(PyQt5)