【Python】Python打包exe后文件庞大,删减体积大小措施

最近由于项目要求,用python写了个软件,但是用pyinstaller打包以后软件巨大。去网上搜索一番看到有人提到可以用pipenv进行打包,这样可以省去pyinstaller将无关的大量库打包进exe的问题。但是由于本次项目中需要使用wrf_python库,而该库的安装方式要求使用anaconda,因此很无奈,只能硬着头皮上了。

但是打包完以后软件足足有1G,只是一个单窗口的软件,但是却有1G大小,是我无法承受的。于是尝试手动删除这些无关的库,这里将我个人步骤记录在此,仅做我个人备忘用,如有同样困惑者也可进行参考,但是该方法并不科学,如果有人因此而产生软件损坏,本人概不负责。

  1. 对于pyinstaller,采用以下代码进行打包
    pyinstaller xx.py

    这样的好处是软件执行文件和依赖库都打包进了dist文件夹,这样可以对依赖库进行删减。如果加上--onefile打包为一个可执行文件,则无法进行体积大小删减。

  2. 对于打包完后的文件夹,使用SpaceSniffer对该文件夹分析,可以直观的看到该文件夹下每个文件夹和文件的大小,从而决定删减内容。下图是我自己的例子。附上SpaceSniffer的官网:SpaceSniffer, find lost disk space the easy way. (uderzo.it)

  3. 删减原则,由于spacesniffer软件会自动按照文件大小进行排序,因此删减顺序就很简单了。由于有大量只有几十kb的库,这些库本身对软件大小影响不大,但是如果删除可能会导致软件无法运行,因此优先删除体积大的库和文件。而在文件夹与文件中,优先选择删除文件,原因在下一步的实际操作中

  4. 接下来开始实际删减,首先打开软件,然后在资源管理器中对文件按照大小排序,然后从大到小对单文件进行删除。优先删除大的单文件的好处在于,如果该文件是软件运行必需的,那么他会提示该文件正在运行中。这样就可以避免删除必要的文件。

  5. 当然这样的手法并不意味着是万无一失的,所以在删除文件的时候建议采用del,这样如果删除了文件以后发现软件无法运行,可以ctrl+z直接从垃圾站找回文件,节省时间。

  6. 对于那些可以明确并非本软件所需要的库的文件夹,可以直接进行删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值