WinError 5:访问被拒绝PyTesseract

Ous*_*sif 7 python windows ocr error-handling 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)
Run Code Online (Sandbox Code Playgroud)

追溯:

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é
Run Code Online (Sandbox Code Playgroud)

0xc*_*0de 13

我怀疑一些事情,但不确定任何事情。

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

tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract'
Run Code Online (Sandbox Code Playgroud)

我相信您的路径指向目录/文件夹而不是可执行文件,但只有您可以确认。如果这不正确,请告诉我,我也看到了一些乍一看不正确的东西,但需要更多调查。


小智 9

我遇到了同样的问题,我按照 0xc0de 的说法修复了它,更改以下行:

pytesseract.pytesseract.tesseract_cmd=r"C:\MyApps\Tesseract-ocr\"
Run Code Online (Sandbox Code Playgroud)

到:

pytesseract.pytesseract.tesseract_cmd="C:\\MyApps\\Tesseract-ocr\\tesseract.exe"
Run Code Online (Sandbox Code Playgroud)


小智 5

使用它来读取 tesseract 路径,并确保您已经安装了 Tesseract-OCR

pytesseract.pytesseract.tesseract_cmd = r'C:\\\Program Files (x86)\\\Tesseract-OCR\\\tesseract.exe'
Run Code Online (Sandbox Code Playgroud)

始终使用双 \\ 而不是单个“\”