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