pyinstaller打包ddddocr的一些坑,亲测解决

在python里,pyinstaller是我们常用的打包工具,其内置了很多常见的库,大大的方便了我们使用。ddddocr是一个常见的验证码和文字识别的库,但是今天我打算用pyinstaller打包ddddocr的时候,却遇到了一些问题,故此分享出来,权当抛砖引玉。

我们平常都使用的打包命令如下:

pyinstaller -F test_demo.py

第一个遇到的问题如下:

问题1

[W:onnxruntime:Default, onnxruntime_pybind_state.cc:2133 onnxruntime::python::CreateInferencePybindStateModule] Init provider bridge failed.

问题原因:

这是因为系统打包时候缺少一些dll动态链接库文件

解决办法:

打包的时候将该dll文件包含进去即可

具体操作:

打开目录下的同名的spec文件,这里是test_demo.spec,在datas这一行添加

('你的虚拟环境\Lib\site-packages\onnxruntime\capi\onnxruntime_providers_shared.dll','onnxruntime\\capi')

然后执行如下命令进行手动打包:

pyinstaller test_demo.spec

如此操作后,报错消失,程序正常。

第二个遇到的问题如下

问题2

Traceback (most recent call last):
File "test_demo.py", line 246, in <module>
File "test_demo.py", line 81, in get_position
File "test_demo.py", line 157, in __get_grid_data
File "test_demo.py", line 47, in captcha_recognize
File "ddddocr\__init__.py", line 2418, in __init__
File "onnxruntime\capi\onnxruntime_inference_collection.py", line 419, in __init__
File "onnxruntime\capi\onnxruntime_inference_collection.py", line 472, in _create_inference_session
onnxruntime.capi.onnxruntime_pybind11_state.NoSuchFile: [ONNXRuntimeError] : 3 : NO_SUCHFILE : Load model from C:\Users\admin\AppData\Local\Temp\_MEI397202\ddddocr\common_old.onnx failed:Load model C:\Users\admin\AppData\Local\Temp\_MEI397202\ddddocr\common_old.onnx failed. File doesn't exist
[45488] Failed to execute script 'test_demo' due to unhandled exception!

问题原因:

这是因为系统打包时候缺少onnx模型文件

解决办法:

打包的时候将该模型文件包含进去即可

具体操作:

打开虚拟环境目录site_packages下的ddddocr目录,找到common_old.onnx,复制到项目目录下,然后找到项目目录下同名的spec文件,这里是test_demo.spec,在datas这一行添加

然后执行如下命令进行手动打包:

pyinstaller test_demo.spec

版权声明:
作者:崔圣杰
链接:https://www.cuishengjie.com/1028.html
来源:论剑阁-崔圣杰博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
pyinstaller打包ddddocr的一些坑,亲测解决
在python里,pyinstaller是我们常用的打包工具,其内置了很多常见的库,大大的方便了我们使用。ddddocr是一个常见的验证码和文字识别的库,但是今天我打算用pyinstaller打包ddddocr的时候,却遇到了一些问题,故此分享出来,权当抛砖引玉。
<<上一篇
下一篇>>
文章目录
关闭
目 录