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

paddleocr出现: [WinError 127] 找不到指定的程序解决办法

        paddleocr是一个由百度开发开源的OCR(光学字符识别)工具库。它支持多种语言的文本识别,包括中文、英文、日文等,并具备高效的文本检测和识别能力。paddleocr基于PaddlePaddle深度学习框架开发,提供了丰富的预处理、模型推理和后处理功能,使得用户能够轻松地将OCR技术集成到自己的项目中。

        但是,最近在使用时发现了一个bug这个bug可能会影响到日常使用,这里我把解决方案分享给大家。

获取方式

        要想使用paddleocr需要同时下载paddlepaddle与paddleocr:

pip install paddlepaddle paddleocr

 

使用方法 

ocr_results=[]
from paddleocr import PaddleOCR
ocr=PaddleOCR(lang="ch")
result=ocr.ocr('test.jpg',cls=True)
for line in result[0]:text=line[1][0]ocr_results.append(text)    
print(ocr_results)     

 

      ocr方法的返回值为嵌套列表,主要由置信度,准确率,以及其他的一些训练参数和识别到的文本构成,因此我们需要使用较深的索引来进行切片获取最终识别到的文本,一般而言是[0][1][0]。

 

BUG 

   如果直接按照我上边给出的代码运行,你会有50%的概率触发这个bug(为什么是50%稍后讲解)

 

 

报错的具体原因是:

[WinError 127] 找不到指定的程序。 Error loading "c:\Users\MrCrab\AppData\Local\Programs\Python\Python312\Lib\site-packages\torch\lib\shm.dll"

无法加载torch\lib下的一个名为shm.dll的文件,这里我们使用os.path.exists()和os.startfile()来检验一下这个文件:

import os
print(os.path.exists(r'c:\Users\MrCrab\AppData\Local\Programs\Python\Python312\Lib\site-packages\torch\lib\shm.dll'))
os.startfile(r'c:\Users\MrCrab\AppData\Local\Programs\Python\Python312\Lib\site-packages\torch\lib')

 结果为True,说明该文件存在,使用os.startfile打开上一级目录,发现这个文件就在当前目录下

 

但是却报错 [WinError 127] 找不到指定的程序,着实让人有些摸不着头脑。

原因及解决办法

经过不懈的查找,最终在paddleocr github的issues中找到了两种解决方案

 

BUG原因

 这个问题是由torch与paddlepaddle的冲突导致的,倘若你没有安装过torch直接下载paddlepaddle与paddleocr后使用paddleocr的话是不会出现任何问题的,但是如果你下载了torch那么是一定会出现这个问题的,这也是为什么前边说会有50%的概率出现这个问题。 

 

 解决办法

        如果你用不到torch,那么卸载掉原有的torch,如果你要用到torch,那么在使用到paddleocr的代码中无论是否要用到torch,都加一行import torch即可完美解决这个问题。

加入import torch后不再报错,正常运行 

总结 

 

        以上便是 paddleocr出现: [WinError 127] 找不到指定的程序解决办法,如果你感到本文对你有用的话,请一键三连支持一下博主,感谢!

相关文章:

  • ZYNQ笔记(九):定时器中断
  • 简易Linux GPIO工具
  • linux多线(进)程编程——(9)信号量(二)
  • Kotlin实现Android应用保活方案
  • 【Linux】Rhcsa复习5
  • 电压、电阻、电流型输入的区别
  • npm link 使用指南
  • 《前端面试题之 Vue 篇(第三集)》
  • pivot_root:原理、用途及最简单 Demo
  • Doris + Iceberg 构建冷热分层数据湖架构:架构设计与实战指南
  • 计算机视觉cv2入门之视频处理
  • 编码器---正交编码器
  • 算法—合并排序—js(场景:大数据且需稳定性)
  • 80 7816协议与串口uart协议时序图
  • 【CPU】中断即时性
  • 自然语言处理(9)—— 共现词矩阵及Python实现
  • C#进阶学习(八)常见的泛型数据结构类(3)SortedDictionary<TKey, TValue>与SortedList<TKey, TValue>
  • OJ - 设计循环队列
  • 交换机端口安全
  • C++学习:六个月从基础到就业——内存管理:内存泄漏与避免
  • 新片|《我仍在此》定档5月,《新·驯龙高手》同步北美上映
  • 十四届全国人大常委会举行第四十四次委员长会议
  • 气候资讯|4月全球前沿气候科学研究&极端天气气候事件
  • 习近平访问金砖国家新开发银行
  • 以“最美通缉犯”为噱头直播?光明网:违法犯罪不应成网红跳板
  • 宁夏民政厅原厅长欧阳艳已任自治区政府副秘书长、办公厅主任