博客
关于我
Pyinstaller打包的exe文件过大的解决方法
阅读量:387 次
发布时间:2019-03-05

本文共 1122 字,大约阅读时间需要 3 分钟。

Pyinstaller打包的exe文件过大怎么办?

相信经常用python的朋友都会面临这么一个问题,那就是想把自己写好的python程序打包给别人使用。有的人就会问了”打包“是什么,为什么要打包呢?

“打包”就是将自己电脑上的py文件制作成可执行exe文件的过程,这样做的目的是让没有安装python环境的朋友也能正常打开使用py程序。
在这里插入图片描述
还未安装pyinstaller的朋友可以直接在cmd窗口运行“pip install pyinstaller”进行下载,我已经安装过了所以就显示已安装。关于pyinstaller有个坑,就是pyinstaller往往是有版本要求的,我记得python有些版本是不能正常打包的,所以在下载python时最好选择合适的版本,我现在在用的是python3.7.4。
在这里插入图片描述
比如我这次打包的单个py文件中就有这几个库函数,之前听说用from…import 比用import可以减少exe的大小,其实我经过操作发现其实不太明显。不过用就用吧,也不好说这种做法是错的,只是说没啥实质用处。

用“pyinstaller -F -w 某某.py”

光是这样打包出来的文件就有200多M,而且打包的运行时间还又臭又长。
这次是学校作业的上交,大家大多都用java打的,可以只发源码,顶多就几百K,我总不可能一枝独秀发个几百M的的压缩包过去吧。
在网上找了许久,这两个网站我觉得对这个问题有建设性的价值:

我们先打包生成一次spec文件,然后记事本打开,更改spec文件中的内容,就像这样:

在这里插入图片描述
然后使用“ pyinstaller --clean -F 某某.spec” 打包,你会惊奇地发现,打包的速度不仅快了好多,从几分钟变成几秒就OK,而且最终的 exe 也从200多M变成了10 M。这篇文章打包用的代码会在后续中发布,那就是另外一回事了。回归正题:
其中标黄色的位置就是要添加的内容,这就有人问了,这些东西在哪里找的啊,我怎么知道要添加这些,其实我也是不知道的,我是根据自己的直觉试出来的,这些库对于程序是不必要的,我们就可以在excludes中添加它们,表示我们不把这些库打包到exe中。那哪些库不需要,要如何寻找呢?
在这里插入图片描述
看到其中的黄字了吗,这些个Loading就是我们的目标,我们将其中的这些库名,试探性地输入到spec文件的excludes列表,经过上面的指令的测试,然后运行exe文件是否成功,将我们的exe文件不断地缩小。你可以通过cmd中的输出提示不断地改善excludes列表,达到exe程序最小化。我暂时是知足了,200M到10M二十倍的缩小,多次尝试相信你也可以很快减小exe的大小的!
喜欢的看官点个赞吧!

转载地址:http://xonzz.baihongyu.com/

你可能感兴趣的文章
Hibernate入门(四)---------一级缓存
查看>>
MySQL事务(学习笔记)
查看>>
一个web前端开发者的日常唠叨
查看>>
内存分配-slab分配器
查看>>
技术写作技巧分享:我是如何从写作小白成长为多平台优秀作者的?
查看>>
Jupyter Notebook 暗色自定义主题
查看>>
[Python学习笔记]组织文件
查看>>
DCL之单例模式
查看>>
什么?你竟然还没有用这几个chrome插件?
查看>>
将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定
查看>>
【俗话说】换个角度理解TCP的三次握手和四次挥手
查看>>
基于Redo Log和Undo Log的MySQL崩溃恢复流程
查看>>
从RocketMQ的Broker源码层面验证一下这两个点
查看>>
如何正确的在项目中接入微信JS-SDK
查看>>
初探WebAssembly
查看>>
关于Objects类的getClass方法为什么可以得到子类的地址的思考
查看>>
239. 滑动窗口最大值
查看>>
纵览全局的框框——智慧搜索
查看>>
手把手教你如何快速构建应用内消息推送与运营能力
查看>>
快服务流量之争:如何在快服务中占领一席之地
查看>>