PyInstaller 使用UPX压缩减少exe大小


在这里插入图片描述


1. 背景

Python打包成exe文件一大痛点就是文件size过大,而使用UPX压缩可以改善一些(但还是不能根本解决)

UPX (the Ultimate Packer for eXecutables)是一款先进的可执行程序文件压缩器
UPX是一个著名的压缩壳,主要功能是压缩PE文件(比如exe,dll等文件),

UPX压缩的技术原理:

加壳:其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。
解压原理:是加壳工具在文件头里加了一段指令,告诉CPU,怎么才能解压自己。当加壳时,其实就是给可执行的文件加上个外衣。用户执行的只是这个外壳程序。当执行这个程序的时候这个壳就会把原来的程序在内存中解开,解开后,以后的就交给真正的程序。


2. 下载UPX

先在官网或github下载UPX exe:

下载后,解压得到upx.exe:

在这里插入图片描述


3. 使用UPX

直接在pyinstaller命令指定upx目录,–upx-dir

pyinstaller --upx-dir “C:\UPX”

或者 将upx.exe放入当前 python/conda的环境目录下,

在这里插入图片描述

这样Pyinstaller打包时,就可以自动检测并使用UPX压缩:

加入UPX前:

在这里插入图片描述
加入UPX后:

在这里插入图片描述

压缩效果根据实际代码情况,我这里找了一个pyqt6的应用程序,实测可减少4M左右的size大小:

在这里插入图片描述


博主热门文章推荐:

在这里插入图片描述

一篇读懂系列:

LoRa Mesh系列:

网络安全系列:

嵌入式开发系列:

AI / 机器学习系列:


Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐