PyInstaller 使用UPX压缩减少exe大小

  • 1. 背景
  • 2. 下载UPX
  • 3. 使用UPX
  • 博主热门文章推荐:


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:

  • https://upx.github.io/
  • https://github.com/upx/upx

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


3. 使用UPX

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

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

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

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

加入UPX前:


加入UPX后:

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


博主热门文章推荐:

一篇读懂系列:

  • 一篇读懂无线充电技术(附方案选型及原理分析)
  • 一篇读懂:Android/iOS手机如何通过音频接口(耳机孔)与外设通信
  • 一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

LoRa Mesh系列:

  • LoRa学习:LoRa关键参数(扩频因子,编码率,带宽)的设定及解释
  • LoRa学习:信道占用检测原理(CAD)
  • LoRa/FSK 无线频谱波形分析(频谱分析仪测试LoRa/FSK带宽、功率、频率误差等)

网络安全系列:

  • ATECC508A芯片开发笔记(一):初识加密芯片
  • SHA/HMAC/AES-CBC/CTR 算法执行效率及RAM消耗 测试结果
  • 常见加密/签名/哈希算法性能比较 (多平台 AES/DES, DH, ECDSA, RSA等)
  • AES加解密效率测试(纯软件AES128/256)–以嵌入式Cortex-M0与M3 平台为例

嵌入式开发系列:

  • 嵌入式学习中较好的练手项目和课题整理(附代码资料、学习视频和嵌入式学习规划)
  • IAR调试使用技巧汇总:数据断点、CallStack、设置堆栈、查看栈使用和栈深度、Memory、Set Next Statement等
  • Linux内核编译配置(Menuconfig)、制作文件系统 详细步骤
  • Android底层调用C代码(JNI实现)
  • 树莓派到手第一步:上电启动、安装中文字体、虚拟键盘、开启SSH等
  • Android/Linux设备有线&无线 双网共存(同时上内、外网)

AI / 机器学习系列:

  • AI: 机器学习必须懂的几个术语:Lable、Feature、Model…
  • AI:卷积神经网络CNN 解决过拟合的方法 (Overcome Overfitting)
  • AI: 什么是机器学习的数据清洗(Data Cleaning)
  • AI: 机器学习的模型是如何训练的?(在试错中学习)
  • 数据可视化:TensorboardX安装及使用(安装测试+实例演示)

PyInstaller 使用UPX压缩减少exe大小相关推荐

  1. pyinstaller 打包项目及使用UPX压缩

    pyinstaller -F /home/xmy/server.py --upx-dir=/home/xmy/yolov5/upx.exe 整体顺序是: pyinstaller -F 待打包py文件路 ...

  2. pyinstaller 打包及其UPX压缩

    使用pyinstaller打包文件的命令(生成单个程序.附带图标.生成在指定文件夹中.使用upx压缩): pyinstaller -F C:\Users\levovozzb\Desktop\bag\s ...

  3. 文档大小超出上传限制怎么办_PDF压缩不到需要的大小?减少PDF大小要这么做!...

    原标题:PDF压缩不到需要的大小?减少PDF大小要这么做! 在日常的办公学习中,我们时常需要把文档上传提交到各系统.但是一般上传的文档都是有文档大小要求的.超过要求的文档,将无法上传.那么,问题来了, ...

  4. qt 修改.exe文件图标_如何在没有错误的情况下更改压缩的.EXE文件上的图标

    qt 修改.exe文件图标 We've previously shown you how to modify the icon on an .EXE file, but if you've tried ...

  5. 使用PyInstaller将python打包成exe

    文章目录 关于PyInstaller 打包到一个文件夹 打包成一个可执行文件 隐藏源代码 如何使用 UPX 加密python字节码 多版本 sepc文件 关于PyInstaller 将程序运行需要的包 ...

  6. linux 源码编译upx 压缩软件

    UPX(the Ultimate Packer for eXecutables)是一个非常全面的可执行文件压缩软件,支持dos/exe.dos/com.dos/sys.djgpp2/coff. wat ...

  7. 怎么压缩gif图大小,gif压缩到微信表情

    我们经常看到很多非常有趣的表情包或者是好看的gif动图,想保存到微信表情和分享给别人的时候,但是常常会发布出去,因为微信限制了gif图必须在1M以下大小,所以经常会发送失败就很遗憾. 所以本文我给大家 ...

  8. 如何将PDF压缩突破限制大小

    如何将PDF压缩突破限制大小?我相信不少小伙伴在压缩PDF文件的时候都遇到这种问题,其实想要对超过规定大小的PDF文件进行压缩,只需要借助LinkPdf转换器就可以成功的进行文件压缩操作了.LinkP ...

  9. 如何压缩图片jpg大小?怎么缩小jpg大小kb?

    我们发送jpg图片文件时为了减少传输时间会先将jpg图片压缩大小后再发送,很多小伙伴都担心普通的jpg图片压缩工具会导致图片画质被缩减.今天小编就为大家推荐一款专业的jpg图片压缩器(在线jpg压缩免 ...

最新文章

  1. java executequery_关于Java怎样封装executeQuery()的问题
  2. 20行python代码的入门级小游戏-python实现石头剪刀布小游戏
  3. 【C 语言】文件操作 ( 配置文件读写 | 框架搭建 | 头文件定义 | 头文件导入限制 | 兼容 C++ 语言 | 函数形参输入输出属性注释)
  4. ulipad install on 64bit win7 has issue
  5. 《敏捷可执行需求说明 Scrum提炼及实现技术》—— 1.2 识别不确定性的影响
  6. Linux-/proc目录简介
  7. maya python 游戏与影视编程指南_《Maya Python游戏与影视编程指南》【价格 目录 书评 正版】_中国图书网...
  8. Golang笔记-面向对象编程-多态/类型断言
  9. 鼎信诺oracle_鼎信诺审计系统操作说明
  10. 作为一个职业达人,你需要水滴石出的专注
  11. android 丢包率测试工具,android的ping的实现丢包率的获取
  12. java jstl 库下载_jar包下载,jstl.jar和standard.jar下载
  13. jzoj立体井字棋【数学】
  14. MAX25————用vray还原模型在Substance Painter的光照以及材质效果
  15. 计算机常见软件故障及处理,计算机常见软件故障处理
  16. 图形学基础|环境光遮蔽(Ambient Occlusion)
  17. 杭州电子科技大学acm--2018
  18. SpringBoot 使用异常自定义错误码
  19. js实现模拟自动点击按钮,并且在10秒倒计时之后疯狂点击
  20. mysql3306端口被占用无法终止_Mysql3306端口被占用无法启动解决办法

热门文章

  1. 2010 outlook导入QQ邮箱联系人
  2. 使用Docker构建Debian软件包
  3. 莫道克大学计算机科学,澳大利亚留学 莫道克大学计算机科学学士解析
  4. 一条简单命令校验MD5
  5. Unity 引导功能
  6. 这可是全网网工基础知识最详细的整理,没有之一
  7. input文本框只能输入数字
  8. ros工控机在foxy安装雷达 速度控制 摄像头 orb_slam3
  9. 温州无证程序员被拘留--程序员伤不起呀。。。。
  10. AndroidQ 图形系统(9)SurfaceView实现原理之设置透明区域