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

Pycharm打包PaddleOCR过程及问题解决方法

        python实现提取图片中的文字,使用PaddleOCR识别最精准,因为只需要识别小尺寸图片,速度在一秒钟左右,对于要应用的项目可以接受。缺点是项目打包有将近600M,压缩后也有将近200M。Tesseract虽然速度快,占用空间小,但是对艺术字体识别精度极差,所以排除使用。

        一个提取文字的极简需求,代码只有几十行。前后使用了三种方法,外加使用了PaddleOCR的三个版本,折腾好几天,终于可以了。打包后600M的空间真的惊到我了。

        另使用PaddleOCR旧版本是因为使用方便,稳定,参考资料多。

开发环境版本:

        1.python3.12.10

        2.paddle2.6.0

        3.PaddleOCR2.8.0

一、生成spec文件,不介绍。

二、修改spec文件内容,仅展示修改部分

a = Analysis(['PaddleOCRTest.py'],pathex=['E:\\Programs\\python\\pao\\.venv\\Lib\\site-packages','E:\\Programs\\python\\pao\\.venv\\Lib\\site-packages\\paddle\\libs'],binaries=[('E:\\Programs\\python\\pao\\.venv\\Lib\\site-packages\\paddle\\libs','.')],datas=[('E:\\Programs\\python\\pao\\.venv\\Lib\\site-packages\\paddleocr\\ppocr', 'paddleocr\\ppocr'),('E:\\Programs\\python\\pao\\.venv\\Lib\\site-packages\\paddleocr\\tools', 'paddleocr\\tools'),('E:\\Programs\\python\\pao\\.venv\\Lib\\site-packages\\paddleocr\\ppstructure', 'paddleocr\\ppstructure')],hiddenimports=['shapely.geometry','pyclipper','skimage', 'skimage.morphology', 'imgaug', 'lmdb'],hookspath=[],hooksconfig={},runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,noarchive=False,optimize=0,
)

三、遇到的问题:

        1.提示:unhandledexception: cannot import name 'imaging' from 'PlL'

                解决方法:到.venv\Lib\site-packages目录下复制PIL文件夹到打包后的_internal文件夹

        2.提示:ModuleNotFoundError: No module named 'XXX'

                解决方法:将模块名称'XXX'添加到spec文件的hiddenimports内,然后重新打包,直到不弹出该类型错误为止。

参考文章:

        Pyinstaller 打包 PaddleOcr + PyQt5 项目的打包过程、常见问题及解决方法_paddleocr打包太难了-CSDN博客

http://www.dtcms.com/a/357407.html

相关文章:

  • Go语言-->if判断中的;
  • SOME/IP-SD协议中组播IP地址和端口号应从何处获取、由谁设置?
  • 嵌入式Linux字符设备驱动开发
  • LFI-labs靶场通关教程
  • 串口通信1.0(串行并行)
  • 解决多种类潮湿敏感元器件的多温度、多时长的排潮烘干
  • 订餐后台项目-day02数据库模型定义笔记
  • DAY16-新世纪DL(DeepLearning/深度学习)战士:Q(机器学习策略)1
  • Go语言入门(13)-map
  • 科学融智学引领人机协同教育新范式
  • 吴恩达机器学习作业七:方差与偏差
  • 【上位机数据转换】数据结构原理及大小端
  • 《WINDOWS 环境下32位汇编语言程序设计》第8章 通用对话框
  • ssh端口转发的几种常用使用方式【本地端口转发、远程端口转发、反向端口转发、动态端口转发】
  • Jenkins 全方位指南:安装、配置、部署与实战应用(含图解)
  • Two-Twer模型做歌曲智能推荐与规则算法对比的优缺点分析
  • 对比rerank模型和embedding模型
  • 订餐后台管理系统 - day04退出登录与账号管理模块
  • C#简单组态软件开发
  • AlexNet:点燃深度学习革命的「卷积神经网络之王」
  • 50etf期权与现货套利是什么意思?
  • position属性
  • Linux学习:线程控制
  • FastAPI 入门科普:下一代高性能 Python Web 框架
  • 一般纳税人
  • 上海市赛/磐石行动2025决赛awd web2-python 4个漏洞详解
  • 漫谈《数字图像处理》之浅析图割分割
  • Java IO 流-详解
  • @GitLab 介绍部署使用详细指南
  • [Godot] C#获取MenuButton节点索引