1. 开启字节码编译优化
使用pyinstaller自带的命令行参数
--optimize [0|1|2]
参考链接
https://pyinstaller.org/en/v6.8.0/usage.html#cmdoption-optimize
https://pyinstaller.org/en/v6.8.0/feature-notes.html?highlight=Optimization%20#bytecode-optimization-level
这个功能类似或者底层就是python解释器的编译优化的功能,默认是0,即不开启编译优化。
- 1级优化是忽略源码中的断言机制assert,可能性能有略微的提升。
- 2级优化是忽略doc string等函数文档注释,不参与字节码的编译。
注意以上的优化,是针对源码py到字节码pyc的编译阶段,如果项目已经由cython编译为pyd的机器码后,再开这个优化的话,效果微乎其微。
2. 使用UPX压缩优化工具
UPX官网https://upx.github.io/
UPX下载https://github.com/upx/upx/releases
号称可以将dll等库文件压缩将近50%-70%,具体feature看官网介绍。
在pyinstaller打包命令里面加入 --upx-dir [upx.exe的根目录]
但是打包的时候会非常慢,
优点:
- 打包后体积确实可以大幅减少
缺点:
- 打包速度会变动非常慢
- 启动软件也会变慢,因为启动时会先进行UPX的解压缩,就绪好了之后,才会正式启动软件本身。所谓用时间换空间
- 运行可能会报错,需要自行测试,因为upx压缩个别dll的时候可能会报错。