项目场景:
使用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。
另外,这篇文章的作者也很用心,虽然没有解决我的问题。