项目场景:

使用pyinstaller打包paddleocr。
推荐不会使用pyinstaller打包工具的可以看一下这篇文章,写的很用心。
一个小ocrapp(其实按体积也不小了)。


解决方案:

为免浪费时间,先说解决方案。
我的打包命令:

pyinstaller -D --name=ocrapp --windowed --collect-all paddleocr --collect-all pyclipper --collect-all imghdr --collect-all skimage --collect-all imgaug --collect-all scipy.io --collect-all lmdb --collect-all paddle main.py

其实就是就是在打包的时候加入如下指令:

--collect-all paddleocr --collect-all pyclipper --collect-all imghdr --collect-all skimage --collect-all imgaug --collect-all scipy.io --collect-all lmdb --collect-all paddle

库版本:

paddleocr                 2.10.0
paddlepaddle              2.6.2
pyinstaller               6.12.0
pyinstaller-hooks-contrib 2025.1

解决方案出处及琐碎分享:

这里是最后成功的解决方案,虽然加入那些指令使得最后打包出来的exe文件多了几十MB,不过成功了就好,后面可以慢慢分析如何减重。

简短历程:

最初,使用如下代码创建一个名为ocrapp的exe文件。

pyinstaller -F --name=ocrapp --windowed main.py 

结果在双击创建的exe文件后:
在这里插入图片描述
主要错误:

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\tianwen\\AppData\\Local\\Temp\\_MEI201722\\paddleocr\\tools/__init__.py'

既然它说少包,我就加入–collect-all paddleocr,但是执行后同样遇到下面的“无法初始化OCR引擎”的问题。
此外,我尝试使用了这里说的方法添加:

--hidden-import imghdr --hidden-import scipy.io --collect-all paddleocr

不过结果如下,虽然可以打开exe文件,但是使用不了ocr。
在这里插入图片描述

另外,这篇文章的作者也很用心,虽然没有解决我的问题。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐