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

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] 找不到指定的程序解决办法,如果你感到本文对你有用的话,请一键三连支持一下博主,感谢!

http://www.xdnf.cn/news/702.html

相关文章:

  • 一招解决所以Maven找不到依赖包的问题
  • 即插即用模块(1) -MAFM特征融合
  • javascript day4
  • LicheeRV Nano 与Ubuntu官方risc-v 镜像混合
  • 12【生命周期·入门】为何需要与显式标注 (`‘a`):让编译器读懂引用的“有效期”
  • Oracle--SQL基本语法
  • lmm-r1开源程序是扩展 OpenRLHF 以支持 LMM RL 训练,用于在多模态任务上重现 DeepSeek-R1
  • Eureka搭建
  • BeautifulSoup 库的使用——python爬虫
  • 算法—合并排序—js(场景:大数据且需稳定性)
  • 23种设计模式-结构型模式之装饰器模式(Java版本)
  • C#进阶学习(八)常见的泛型数据结构类(3)SortedDictionary<TKey, TValue>与SortedList<TKey, TValue>
  • 大语言模型推理能力的强化学习现状理解GRPO与近期推理模型研究的新见解
  • PG CTE 递归 SQL 翻译为 达梦版本
  • 将 JSON 字符串转化为对象的详细笔记 (Java示例)
  • 【AI量化第26篇】以配置为核心的工程化研究管理——基于miniQMT的量化交易回测系统开发实记
  • 15. 三数之和
  • 计算机网络中的网络层:架构、功能与重要性
  • llama factory
  • springboot+vue3+mysql+websocket实现的即时通讯软件
  • C++数组栈与链表栈
  • 软考高级系统架构设计师-第16章 数学与经济管理
  • 切换 Python 版本(配置path方式,含trae)
  • 一个最简单的 Model Context Protocol 的例子
  • Halcon应用:相机标定
  • C++入门篇(下)
  • 线性DP:最长上升子序列(可不连续,数组必须连续)
  • Matlab 复合模糊PID
  • NumPy:数值计算基础与高性能数组操作
  • 如何使用人工智能大模型,免费快速写工作总结?