PyInstaller打包含easyOCR的Python程序体积过大求助
体积变化是否正常?
这种体积增长是正常现象。easyOCR底层依赖PyTorch框架,还会打包自带的预训练识别模型(包括多语言权重文件),同时它本身还依赖numpy、Pillow等多个额外依赖库,这些组件的体积总和远超过opencv和pywin32的体积,所以从54MB涨到323MB完全符合预期。
减小可执行文件体积的方法
- 指定仅需的语言模型:easyOCR默认打包多语言模型,若你只需要识别特定语言(比如仅简体中文),在代码中初始化Reader时指定
lang_list参数,示例:
这样PyInstaller只会打包对应语言的模型文件,能大幅降低体积。reader = easyocr.Reader(['ch_sim']) - 排除冗余依赖模块:查看打包日志,找出项目未使用的依赖模块,用
pyinstaller的--exclude-module参数排除。比如确认不需要PyTorch的CUDA相关组件时,可添加--exclude-module torch.cuda(需确保不影响功能)。 - 取消
--onefile打包模式:--onefile会将所有依赖打包为单个可执行文件,运行时需解压至临时目录,打包后的体积会包含解压所需的额外结构。改用默认的文件夹模式(移除--onefile参数),能避免这类冗余,实际总占用空间更小。 - 使用UPX压缩:PyInstaller支持通过UPX工具压缩可执行文件,提前下载UPX后,在打包命令中添加
--upx-dir [UPX工具所在路径]参数,可对打包产物进行无损压缩,进一步减小体积。 - 使用纯净虚拟环境打包:创建仅安装项目必需依赖的虚拟环境,避免打包进无关的库文件,从源头减少冗余。
内容的提问来源于stack exchange,提问作者KenOaza
相关产品推荐
相关产品推荐

