[pyinstaller]如何减小pyinstaller打包体积

[pyinstaller]如何减小pyinstaller打包体积

平时在使用pyinstaller打包python程序动辄几十M甚至几百M

这边列出常用一些库单独打包的惊人大小

Packages包含大小
10.4M
Pyqt541.9M
numpy324M
Pandas498M
numpy+Pandas(两者有重叠部分)547M
Mdfreader(自带Pandas和UI界面,会带入QT)548M

不管怎样,我们能让自己写的程序打出来的包越小越好,尽量去减小它的大小。

1. 建立虚拟环境打包是否可以缩小体积呢

此时当前我打出来的包是63.1M

  • 首先安装pipenv
pip install pipenv
  • 安装完成后即可创建虚拟环境并进入打包
#建立虚拟环境
pipenv install
#进入虚拟环境
pipenv shell
#安装模块
pip install 小工具.py里面用到的模块
#打包的模块也要安装
pip install pyinstaller
#开始打包
pyinstaller -Fw main.py

安装完所有的必备的模块,并且打出来的包能正常使用,打包完成是55.9M,相比较之前减少了7.2M

2. 使用upx压缩

上面第一节讲的是在虚拟环境下打包,最后的大小为55.9M,我们以此为基础使用upx压缩看看能减小多少

pyinstaller main.spec

main.spec内容如下

# -*- mode: python ; coding: utf-8 -*-


block_cipher = None


a = Analysis(['main.py'],
             pathex=['F:\x\project\Music_Batch_Download_package'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             hooksconfig={},
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)

exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,  
          [],
          name='Downloader',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=False,
          disable_windowed_traceback=False,
          target_arch=None,
          codesign_identity=None,
          entitlements_file=None , icon='material\\logo.ico')

最后打包大小为46.2M,相比较于虚拟环境下打包减少了9.7M,效果还是比较明显的。

总结:

通过使用虚拟环境和UPX压缩的方法可以将我的程序从63.1M压缩到了46.2M,压缩比为26%

Reference

pyinstaller打包的exe太大?你需要嵌入式python玄学 前提篇 - 知乎 (zhihu.com)
PyInstaller打包详解 | Yu’s Home (gitee.io)

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
减小PyInstaller打包后的体积,你可以考虑以下几点: 1. 使用嵌入式Python:根据引用中的知乎文章和博客文章,你可以尝试使用嵌入式Python减小打包后的体积。嵌入式Python是一种将Python解释器嵌入到应用程序中的技术,可以减少对外部Python环境的依赖。 2. 选择合适的GUI库:根据引用,GUI库的选择可能会影响打包后的体积。如果PyQt体积过大,你可以考虑使用Tkinter这样的轻量级GUI库来重新实现你的GUI界面。 3. 精简依赖模块:根据引用,你可以使用pipenv创建虚拟环境并只安装你实际需要的依赖模块。这可以减少打包后的体积,并提高应用程序的性能。 4. 使用PyInstaller的参数:在使用PyInstaller进行打包时,你可以尝试使用一些参数来进一步减小打包后的体积。例如,使用`-F`参数可以将所有的依赖项打包成单个可执行文件,使用`-w`参数可以禁用控制台窗口。 综上所述,通过使用嵌入式Python、选择合适的GUI库、精简依赖模块以及使用PyInstaller的参数,你可以尝试减小PyInstaller打包后的体积。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [[pyinstaller]如何减小pyinstaller打包体积](https://blog.csdn.net/xiaokai1999/article/details/124301294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Pyinstaller打包PyQt5程序太大,tkinter和Pyqt写小程序哪个体积小。](https://blog.csdn.net/qq_26078693/article/details/108166343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锡城筱凯

你的鼓励是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值