python生成exe文件太大了,python打包成exe文件大,执行慢
最近由于项目的要求,用python写了一个软件,但是用pyinstaller打包后体积庞大。我上网搜了一下,看到有人提到可以用pipenv打包,可以省去pyinstaller把大量不相关的库打包成exe的问题。但是因为这个项目需要用到wrf_python库,而且这个库的安装方法需要anaconda,所以很无奈,只好硬着头皮上了。
但是打包后软件全是1G,只是单窗口软件,却有1G的大小,我买不起。所以我尝试手动删除这些不相关的库。在这里,我将我个人的步骤记录在这里,仅供我个人备忘录使用。如果你有同样的困惑,也可以参考一下。但这种方法并不科学,由此造成的任何软件损坏我都不负责。
对于pyinstaller,下面的代码用来打包pyinstaller xx.py这样做的好处是软件执行文件和依赖库都打包在dist文件夹中,这样就可以删除依赖库了。如果添加- onefile并将其打包为可执行文件,则无法减小卷大小。
对于打包的文件夹,使用SpaceSniffer对文件夹进行分析,可以直观的看到文件夹下每个文件夹和文件的大小,进而决定删除内容。下图是我自己的例子。SpaceSniffer官方网站:SpaceSniffer,找到丢失的磁盘空间的简单方法。(uderzo.it)
删除原理,因为spacesniffer软件会自动按照文件大小排序,所以删除顺序很简单。由于有大量只有几十kb的库,这些库本身对软件的大小影响不大,但如果删除,软件可能无法运行,所以应该先删除大的库和文件。在文件夹和文件中,首先选择的是删除文件,为接下来的实际操作做准备。
接下来,开始实际的删除。首先打开软件,然后在资源管理器中按大小对文件进行排序,然后从最大到最小删除单个文件。先删除一个大的单个文件的好处是,如果该文件是软件运行所必需的,它会提示该文件正在运行。这将避免删除必要的文件。
当然,这种方法并不意味着万无一失,所以删除文件时建议使用del。这样,如果删除文件后发现软件无法运行,可以使用ctrl z直接从垃圾站取回文件,节省时间。
对于那些可以明确标识为本软件不需要的库的文件夹,可以直接删除。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。