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

Pyinstaller打包含PyTorch与PyQt的小应用后dist达4GB,是否使用有误?

PyInstaller打包PyTorch+PyQt应用体积过大的问题

你没有错误使用PyInstaller,4GB的体积是PyTorch的依赖特性导致的——PyInstaller默认会打包PyTorch的完整组件,哪怕你只用到了__version__这个变量,它也会把包括CUDA后端、多设备支持、各类扩展模块在内的全部依赖都打包进去,这是PyTorch的架构特性,并非PyInstaller的使用错误。

优化体积的实用方法:

  • 改用PyTorch CPU版本:如果你的应用不需要GPU加速,卸载GPU版PyTorch,安装仅支持CPU的版本,这能砍掉大部分CUDA相关的冗余文件,直接把体积压缩到几百MB级别。
  • 精准排除不必要的模块:用PyInstaller的--exclude-module参数手动剔除不需要的PyTorch组件,示例命令:
    pyinstaller --windowed --exclude-module torch.cuda --exclude-module torch.distributed --exclude-module torch.nn.parallel your_script.py
    
  • 使用干净的虚拟环境:专门创建一个虚拟环境,只安装PyQt5和必要的PyTorch依赖,避免打包环境中其他无关的库文件。
  • 尝试UPX压缩:给PyInstaller添加--upx-dir参数(需提前安装UPX工具),对生成的二进制文件进行压缩,示例命令:
    pyinstaller --windowed --upx-dir /path/to/upx --exclude-module torch.cuda your_script.py
    
  • 手动编辑spec文件:生成spec文件后(执行pyinstaller your_script.py会自动生成),修改其中的excludes列表,添加更多不需要的模块,同时设置strip=True去除二进制文件的调试信息。

经过这些优化后,应用体积会大幅下降,虽然仍会比纯PyQt应用大,但不会再出现4GB的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 07:15:02