当前位置: 移动技术网 > IT编程>脚本编程>Python > upx+pyinstaller压缩python文件

upx+pyinstaller压缩python文件

2020年07月16日  | 移动技术网IT编程  | 我要评论
1.下载upx登陆upx官网下载相应版本的upx插件,将upx.exe放至.py文件目录下即可。网上很多在虚拟环境或者新的python环境下使用pyinstaller打包程序,为的是防止pyinstaller打包不需要的第三方库,个人使用后发现的确在生成的dist文件下多出了几个不需要的第三方文件库,可手动删除,没有太大影响。2.打包cmd cd至项目,使用pyinstaller XX.py 即可将文件打包为.exe,由于之前已将upx放至同级目录,所以打包时会默认使用upx进行压缩。3.运行出

1.下载upx

登陆upx官网下载相应版本的upx插件,将upx.exe放至.py文件目录下即可。
网上很多在虚拟环境或者新的python环境下使用pyinstaller打包程序,为的是防止pyinstaller打包不需要的第三方库,个人使用后发现的确在生成的dist文件下多出了几个不需要的第三方文件库,可手动删除,没有太大影响。
我这里的版本为
python 3.7.3
pyinstaller 3.6
upx 3.96-win64

2.打包

cmd cd至项目,使用pyinstaller XX.py 即可将文件打包为.exe,由于之前已将upx放至同级目录,所以打包时会默认使用upx进行压缩。

3.运行出错

如果.py文件中使用了scipy、numpy等库,生成的.exe文件可能会出现运行错误,这是由于upx将VCRUNTIME140.dll、msvcp140.dll压缩之后签名不一致导致windows不认。这里先将upx.exe从项目中移除,重新打包一个没有压缩过的文件,在这个文件中找到相应的.dll文件并替换掉之前的压缩dll文件即可。

4.总结

使用pyinstaller -F XX.py打包生成的文件虽然比较小但是运行速度巨慢,还不如使用upx压缩后的.exe运行速度,不过都挺慢的,不使用upx压缩虽然速度上满足要求但是占用体积太多。经测试可以选择将未使用upx压缩的打包文件中的dist下的文件下的所有文件夹替换掉使用upx压缩之后的文件,实现速度和体积的折中。
反正还是少使用python的打包吧。

本文地址:https://blog.csdn.net/wbl320/article/details/107333656

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网