Pytesseract无法找到指定的文件。

18

我的代码很直观,并且如下所示:

import pytesseract
from PIL import Image

img = Image.open('C:/temp/foo.jpg')
img.load()
i = pytesseract.image_to_string(img)

我收到的错误响应是:

Traceback (most recent call last):
  File "img.py", line 6, in <module>
    i = pytesseract.image_to_string(img)
  File "build\bdist.win32\egg\pytesseract\pytesseract.py", line 161, in image_to
_string
  File "build\bdist.win32\egg\pytesseract\pytesseract.py", line 94, in run_tesse
ract
  File "C:\Users\%USER%\AppData\Local\Continuum\Anaconda\lib\subprocess.py",
line 710, in __init__
    errread, errwrite)
  File "C:\Users\%USER%\AppData\Local\Continuum\Anaconda\lib\subprocess.py",
line 958, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
任何指导都会很棒。 将tesseract添加到我的路径变量中有所帮助: C:\Program Files (x86)\Tesseract-OCR 但是当尝试运行pytesseract代码时,现在会崩溃。

你可以尝试使用另一个库在Python中使用Tesseract: pyslibtesseract。这个库使用另一种方式来加载图片。 - macabeus
1个回答

57

刚遇到了同样的错误并决定回答这个问题 - 这可能会帮助某些人节省时间...

首先,请确保你已经 安装/复制了Tesseract-OCR可执行文件

Windows无法在指定了PATH环境变量的目录中找到可执行文件tesseract。因此,请确保包含tesseract的目录在PATH变量中,或者在Python脚本中像下面这样覆盖tesseract_cmd变量(请将自己的路径替换进去):

import pytesseract

pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'

此外,请确保设置了 TESSDATA_PREFIX Windows 环境变量,指向包含 tessdata 目录的目录。例如:

TESSDATA_PREFIX=C:\Program Files (x86)\Tesseract-OCR

如果tessdata的位置是:C:\Program Files (x86)\Tesseract-OCR\tessdata


5
我建议先安装tesseract,然后再尝试Python部分。同时,我也会进行评论。 - jason m
2
@jasonm,我已经更新了我的答案。实际上,我认为这太明显了,不值得一提,但是,嘿,你是对的——它可能会让一些没有经验的用户感到困惑。 - MaxU - stand with Ukraine
@Jamie Bull 我按照你的建议设置了路径,但是找不到tessdata这一行。 - Brandon
1
我甚至找不到Tesseract-OCR文件夹。我只有一个pytesseract文件夹。 - Pro Q
1
@ProQ,您需要先安装(复制)Tesseract-OCR二进制文件 - MaxU - stand with Ukraine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接