You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何减小PySide6打包后的程序包体积?

PySide6 Mac端打包冗余文件精简方案

你手动清理的都是Qt自带的开发工具类冗余,剩下的体积基本来自没被排查到的未使用模块、调试符号、资源文件三类,按下面的步骤操作可以快速把体积压到200MB以内,不用逐个人工翻找文件。

可直接清理的冗余项清单

  • 全量调试符号文件:所有带_debug后缀的.dylib动态库、所有.dSYM后缀的符号表文件夹,这部分通常占150-200MB,是最容易被遗漏的大块冗余,所有正式发布包都不需要保留。
  • 未使用的Qt功能框架:
    • 纯QWidget开发、没用到QML的话,直接删除QtQml.framework、QtQuick.framework、QtQuickControls2.framework、QtQmlModels.framework等所有QML专属框架
    • 没用到3D功能就删除所有Qt3D开头的框架
    • 没用到蓝牙就删QtBluetooth.framework
    • 没用到定位/地图就删QtPositioning.framework、QtLocation.framework
    • 没用到音视频播放/采集就删QtMultimedia.framework、QtMultimediaWidgets.framework
    • 没用到串口通信就删QtSerialPort.framework
    • 没用到网页渲染除了你已经删的WebEngine相关,还要删QtWebView.framework
  • 冗余翻译文件:translations目录下只保留你软件实际支持的语言对应的.qm文件即可,其余几十种小语种翻译文件全删,这部分通常占30-50MB。
  • PySide6自带的附属资源:打包时不要把PySide6安装目录下的examples示例文件夹、doc文档文件夹带进去,这部分合计有40-60MB。

自动化精简方法(无需手动找文件)

如果用PyInstaller打包,直接在spec配置文件里提前声明排除项,打包阶段就不会把冗余文件塞进安装包,示例配置如下:

# 不需要的模块全列在这里
excludes_list = [
    # 开发工具类
    'PySide6.Assistant', 'PySide6.Designer', 'PySide6.Linguist', 'PySide6.lupdate',
    # WebEngine全系列
    'PySide6.QtWebEngineCore', 'PySide6.QtWebEngine', 'PySide6.QtWebEngineWidgets',
    # QML全系列(纯QWidget应用启用)
    'PySide6.QtQml', 'PySide6.QtQuick', 'PySide6.QtQuickControls2', 'PySide6.QtQmlModels',
    # 其他你用不到的模块按需追加
    'PySide6.Qt3DCore', 'PySide6.QtBluetooth', 'PySide6.QtPositioning'
]

a = Analysis(
    # 其余原有配置保持不变
    excludes=excludes_list,
)

打包完成生成.app包后,在终端进入包对应目录,执行strip命令移除剩余符号信息,还能再压缩30-50MB:

# 替换成你自己的.app实际路径
cd /path/to/your/App.app/Contents
find . -name "*.dylib" -exec strip -x {} \;
strip -x MacOS/你的应用可执行文件名

注意事项

每次调整排除项、删除文件后,务必完整走一遍应用的所有功能流程,确认用到的模块没有被误删,所有清理项都可以根据你自己的实际功能需求灵活调整。

按上述步骤操作完,常规纯QWidget类PySide6应用的Mac端安装包体积基本可以稳定在120-180MB区间,不会超过200MB。

内容的提问来源于stack exchange,提问作者Daniel Stephens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 18:31:28