Python ddddocr 构建 exe 程序后运行报错:Failed Load model ... common_old.onnx

文章目录

  • ddddocr
  • 版本
  • 简单的 demo
  • 解决方案
  • 个人简介

ddddocr

  • ddddocr是由sml2h3开发的专为验证码厂商进行对自家新版本验证码难易强度进行验证的一个python库,其由作者与kerlomz共同合作完成,通过大批量生成随机数据后进行深度网络训练,本身并非针对任何一家验证码厂商而制作,本库使用效果完全靠玄学,可能可以识别,可能不能识别。
  • ddddocr奉行着开箱即用、最简依赖的理念,尽量减少用户的配置和使用成本,希望给每一位测试者带来舒适的体验。

版本

  • Python 3.12

简单的 demo

import ddddocr

ocr = ddddocr.DdddOcr()

with open("test.jpg", 'rb') as f:
    image = f.read()

res = ocr.classification(image)
print(res)
  • 上述的代码可以正常进行运行,但是当打包为.exe后奇怪的事情发生了。程序运行报错,Failed Load model ... common_old.onnx
  • 报错明确的告诉我们 common_old.onnx 无法找到,但经过确认发现 ddddocr 依赖确实构建到程序中,那么肯定是路径的问题,通过搜索发现网上提供了几种不同的方案,这里我分享其中一种比较简单的方式。

解决方案

  • 1、将 ddddocr\__init__.py 文件中 self.__graph_path = os.path.join(os.path.dirname(__file__), 替换为 self.__graph_path = os.path.join(os.path.dirname(sys.argv[0]), (一共有三处)同时在当前文件 import sys
  • 2、重新按照正常的方式打包,并复制3个.onnx 文件到运行目录

个人简介

你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.

我对技术的热情是我不断学习和分享的动力。我的博客是一个关于Java生态系统、后端开发和最新技术趋势的地方。

作为一个 Java 后端技术爱好者,我不仅热衷于探索语言的新特性和技术的深度,还热衷于分享我的见解和最佳实践。我相信知识的分享和社区合作可以帮助我们共同成长。

在我的博客上,你将找到关于Java核心概念、JVM 底层技术、常用框架如Spring和Mybatis 、MySQL等数据库管理、RabbitMQ、Rocketmq等消息中间件、性能优化等内容的深入文章。我也将分享一些编程技巧和解决问题的方法,以帮助你更好地掌握Java编程。

我鼓励互动和建立社区,因此请留下你的问题、建议或主题请求,让我知道你感兴趣的内容。此外,我将分享最新的互联网和技术资讯,以确保你与技术世界的最新发展保持联系。我期待与你一起在技术之路上前进,一起探讨技术世界的无限可能性。

保持关注我的博客,让我们共同追求技术卓越。

你可能感兴趣的:(Python,python,开发语言)