分享

Python程序打包—减小 Pyinstaller 生成的 exe 的体积

 UINOTE 2023-11-09 发布于江苏

压缩 exe 体积

Pyinstaller 打包的文件会偏大,这是因为 pyinstaller 会将环境中已安装的和本项目无关的包,也打包进来。

一般我们有两种减小 exe 体积的方法,分别是配置虚拟环境打包使用 UPX 压缩,当然两者可以结合使用。

配置虚拟环境主要是为了防止 Pyinstaller 打包进多余的包;虽然 Pyinstaller 会将所有一股脑都拷贝走,但是地主家的余粮只有这么多,所以它也没办法。图片

使用 UPX 是为了压缩生成的 exe 的体积,这对于单文件 exe 往往效果更加显著。

配置虚拟环境打包

首先我们需要配置一个虚拟环境,虚拟环境可以理解为单独一个文件夹,你的项目所有用到的三方库,都在这里。

配置虚拟环境

首先通过venv模块来创建虚拟环境:python -m venv 文件夹路径
我这里是存放到了D:\netWare\gits\pygui文件夹下。所以相应的配置命令就是:
python -m venv D:\netWare\gits\pygui

VSC切换虚拟环境

然后切换到这个环境,先点击这里:

图片

然后选择解释器路径:

图片

再次打开终端,显示这样就是设置成功了:

图片

安装项目依赖

我们需要将项目用到的第三方库都在这个环境中重新安装一遍,pip 会读取之前的下载缓存,所以会很快。

执行打包命令

和之前的打包没有任何差别,假如你的 Python 程序的主入口文件是xx.py,那么你的打包命令依旧是:

pyinstaller xx.py

删除虚拟环境

如果哪一天不想用这个虚拟环境了,删掉那个文件夹就好了(瞅准,delete)

图片

使用UPX进一步压缩

下载UPX

UPX 是一个可执行程序文件压缩器,压缩过的可执行文件体积缩小 50%-70%,通过以上方法打包出来的 exe 还可以通过 UPX 进一步压缩。

下载地址https://upx./

选择你系统对应的版本下载,下载后解压到某个位置,我的电脑是 Windows 11 64bit,所以我选择这个版本。

图片

将 UPX 配置到系统环境变量

图片

调用 UPX 压缩 exe

Pyinstaller 可以通过添加--upx-dir参数来设置打包时调用 UPX 进行压缩,完整命令形式为:

pyinstaller --upx-dir=x:\xxx\upx.exe xx.py

其中x:\xxx\upx.exe是 UPX 的文件路径。

📢:一般文件越大压缩效果越明显。不过在最新的 6.1.0版本中,不用显式地指定 upx 路径了,Pyinstaller 会默认调用(如果你已经配置到系统环境变量中)

总结

两种方式结合使用,就可以让你的程序没那么大,是不是很有成就感。

图片


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多