在网上找了很多方法,包括虚拟环境,upx压缩等等,但是其中虚拟环境确实能避免打入不必要的包(此时大小为60M),UPX压缩也能减小一部分(此时大小为57M左右)。
后来我发现在我在程序里使用了一个labelme的包,这个包只用到了一个函数img_b64_to_arr,其他东西完全是占体积的。
于是复制了关联的函数,删除了该包。
此时大小不到50M,使用UPX大小为42M
pyinstaller打包后程序体积太大,如何解决? - 吵吵的回答 - 知乎
那么,此时最占体积的就是PyQt了,因为只是个小程序,体积太大反而不好。所以我又使用Tkinter对GUI重新复现了一下。主要对比Tkinter和PyQt使用Pyinstaller打包后的大小。
Tkinter是python自带的图形库,所以它的性能不是很差,但是它的库少,UI比较“丑”。如果对美观有要求,tkinter确实弱了一点,这个时候可以选用pyqt。
使用了Tinker做GUI的程序大小为20M+,upx压缩后为16M
界面对比(左PyQt5,右Tkinter)
因此写个小程序用TKinter写,打包起来体积更小。