WinError 5:访问被拒绝PyTesseract

时间:2017-09-01 16:54:30

标签: python windows error-handling ocr python-tesseract

我知道这个问题已经在这个网站上得到了回答,但是,我上网的解决方案似乎都没有。这就是我的尝试:

  • 授予我的python文件所有权限
  • 更改PATH变量以指向我的tesseract文件夹
  • 以管理员身份运行IDLE,然后从那里执行文件

这个错误现在让我感到非常困扰,因此我无法继续前进。

这是我的代码,如果有帮助的话:

import pytesseract
import sys
import argparse
try:
    import Image
except ImportError:
    from PIL import Image
from subprocess import check_output
pytesseract.pytesseract.tesseract_cmd = 'C:\Program Files\Tesseract-OCR'
c=pytesseract.image_to_string(Image.open('img.png'))
print(c)

回溯:

Traceback (most recent call last):
  File "C:\Users\Hp\Desktop\bot.py", line 12, in <module>
    c=pytesseract.image_to_string(Image.open('captcha.png'))
  File "C:\Python\lib\site-packages\pytesseract\pytesseract.py", line 122, in image_to_string
config=config)
  File "C:\Python\lib\site-packages\pytesseract\pytesseract.py", line 46, in run_tesseract
proc = subprocess.Popen(command, stderr=subprocess.PIPE)
  File "C:\Python\lib\subprocess.py", line 707, in __init__
restore_signals, start_new_session)
  File "C:\Python\lib\subprocess.py", line 992, in _execute_child
startupinfo)
PermissionError: [WinError 5] Accès refusé

4 个答案:

答案 0 :(得分:1)

我怀疑有些事情,但不确定是否有。

首先也是最明显的,Tesseract的路径并不完整。它应该是这样的:

tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract'

我相信您的路径指向目录/文件夹而不是可执行文件,但只有您可以确认。让我知道如果这是不正确的,我会看到其他一些事情似乎一开始并不正确,但需要更多调查。

答案 1 :(得分:1)

需要单独安装tesseract。我提供了您应该安装的链接

https://github.com/UB-Mannheim/tesseract/wiki

tesseract-ocr-w32-setup-v5.0.0-alpha.20201127.exe(32 位)和 tesseract-ocr-w64-setup-v5.0.0-alpha.20201127.exe(64位)对应

根据您的系统配置选择此处。我们大多数人都有 64 位。所以选择那个。

非常小心地安装文件。我建议在 c 以外的单独驱动器中执行此操作。 选择安装 tesseract.exe 文件的路径。并将其粘贴到 pytesseract.pytesseract.tesseract_cmd

看代码...

import cv2
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'E:/OCR/tesseract_install/tesseract.exe'
img = cv2.imread('E:/OCR/example1.png')
# to see the image below codes are there
cv2.imshow('sampleimage',img)
#enter any key to destroy the image window opened due to previous line code
cv2.waitKey(0)
cv2.destroyAllWindows()
#convert image to text using tesseract
text = pytesseract.image_to_string(img)
print(text)

答案 2 :(得分:0)

使用此方法读取tesseract路径,并确保已安装tesseract-ocr

pytesseract.pytesseract.tesseract_cmd = r'C:\\ Program Files(x86)\\ Tesseract-OCR \\ tesseract' 始终使用双\\而不是单个“ \”

答案 3 :(得分:0)

我遇到了同样的问题,并将其修复为0xc0de所说的,更改下面的行:

pytesseract.pytesseract.tesseract_cmd=r"C:\MyApps\Tesseract-ocr\"

收件人:

pytesseract.pytesseract.tesseract_cmd="C:\\MyApps\\Tesseract-ocr\\tesseract.exe"