pyinstaller
安装pyinstaller
pipenv install pyinstaller
或者通过pip安装
pip install pyinstaller
基本常用参数
–i 图标路径
-F 打包成一个exe文件
-w 使用窗口,无控制台
-c 使用控制台,无窗口
-D 创建一个目录,里面包含exe以及其他一些依赖性文件
-h 查看参数
打包图标失效问题
通过qrc将其转换为py文件后再导入使用即可解决这个问题
# test.qrc
<RCC><qresource prefix="/"><file>icon.ico</file></qresource>
</RCC>
通过下面命令即可完成py文件转换
pyrcc5 -o query_ico_rc.py test.qrc
转换后图片资源被转换为二进制形式
然后直接引入上面转换的文件即可
# main.py
import query_ico_rc
...
self.setWindowIcon(QIcon(':/icon.ico'))
通过pyinstaller打包-i参数不生效的问题
首先要排除你.ico图标的路径问题,如果使用相对路径不成功,可以试试绝对路径,其次因为.ico图标有大小尺寸的,所以你转换成的.ico会因为大小而使得你所打包的应用程序的图标显示不全,
对于windows平台,这里的选项会导致你的图标显示出现问题,所以最佳的解决方案就是多帧ico,这里推荐ToYcon这个软件可以制作多帧ico
下载地址:
https://toycon.en.softonic.com/
配置好以后直接将你要转换的资源文件往里拖就可以完成转换!
现在再通过pyinstaller通过-i参数打包不出意外图标即可生效!
关于生成的可执行程序文件太大
首先优化源码,没有使用的包尽量不要导入,还有导入尽量精准
比如
from PyQt5.Qt import *
这种导包就是大忌,因为非常多的我们都没有用到,生成的时候就会非常大
其次可以通过upx压缩,
项目地址:https://github.com/upx/upx/releases/
在使用pyinstaller的时候通过 --upx-dir参数指定upx.exe的位置即可!