当前位置: 首页 > news >正文

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

文章目录

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

ddddocr

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

版本

  • Python 3.12

简单的 demo

import ddddocrocr = 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编程。

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

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

相关文章:

  • Mac M1 Parallels CentOS7.9 Deploy Typecho
  • 考研C语言刷编程题篇之分支循环结构基础篇(一)
  • 从零开始c++精讲:第三篇——内存管理
  • 计算机毕业设计选题分享-ssm租房小程序42196(赠送源码数据库)JAVA、PHP,node.js,C++、python,大屏数据可视化等
  • esp32-c-简单应用笔记
  • python-基础篇-函数
  • 「实战应用」如何用DHTMLX Gantt构建类似JIRA式的项目路线图(二)
  • 软件测试|使用matplotlib绘制箱型图
  • SpringSecurity(07)——JWT整合
  • react和vue的区别
  • 数字身份所有权:Web3时代用户数据的掌控权
  • EXCEL VBA获取幸运数字号码
  • C++---string类
  • Cinder组件作用
  • HarmonyOS鸿蒙学习基础篇 - 项目目录和文件介绍
  • [译]Python中的类属性与实例属性的区别
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 08.Android之View事件问题
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • GraphQL学习过程应该是这样的
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Java多线程(4):使用线程池执行定时任务
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • rabbitmq延迟消息示例
  • spark本地环境的搭建到运行第一个spark程序
  • vue:响应原理
  • vue-loader 源码解析系列之 selector
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 简单基于spring的redis配置(单机和集群模式)
  • 前嗅ForeSpider采集配置界面介绍
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 如何用vue打造一个移动端音乐播放器
  • 详解移动APP与web APP的区别
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • Java数据解析之JSON
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • !!Dom4j 学习笔记
  • # 透过事物看本质的能力怎么培养?
  • #14vue3生成表单并跳转到外部地址的方式
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (pojstep1.1.2)2654(直叙式模拟)
  • (二)WCF的Binding模型
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (译) 函数式 JS #1:简介
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .net 反编译_.net反编译的相关问题
  • .NET 中的轻量级线程安全
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @javax.ws.rs Webservice注解
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [4.9福建四校联考]
  • [AIGC codze] Kafka 的 rebalance 机制
  • [android] 练习PopupWindow实现对话框