python FileNotFoundError使用pytesseract时

时间:2016-09-14 10:14:32

标签: python-3.x pytesser

我尝试捕获当前屏幕的一部分以检测屏幕上的某些数字,但是当代码运行时出现此错误:

Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/bot/detect_num.py", line 12, in <module>
    print(pytesseract.image_to_string(Image.open('test.jpg')))
  File "C:\Python35\lib\site-packages\pytesseract\pytesseract.py", line 161, in image_to_string
    config=config)
  File "C:\Python35\lib\site-packages\pytesseract\pytesseract.py", line 94, in run_tesseract
    stderr=subprocess.PIPE)
  File "C:\Python35\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\Python35\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

源代码:

import pyscreenshot as ImageGrab
from PIL import Image
import subprocess
from pytesseract import *

if __name__=="__main__":
    im = ImageGrab.grab(bbox=(1349, 34, 1357, 45))
    im = im.convert('1')
    im.save('test.jpg', 'JPEG')
    im.show()
    print(pytesseract.image_to_string(Image.open('test.jpg')))

请有人告诉我原因,以及如何解决?

3 个答案:

答案 0 :(得分:0)

这里的问题是您没有安装必要的依赖项。当您阅读pyteseeract's documentation时,您会看到以下文字:

  • http://code.google.com/p/tesseract-ocr/安装google tesseract-ocr。 您必须能够将tesseract命令作为“tesseract”调用。如果这 事实并非如此,例如因为tesseract不在你的PATH中,你会的 必须更改'tesseract.py'顶部的“tesseract_cmd”变量。

我认为您还没有执行该步骤,因此没有tesseract命令来实际执行所需的OCR工作。

答案 1 :(得分:0)

使用pytesseract时,首先必须确保在系统中安装了Tesseract-OCR。然后你必须在代码中插入tesseract的路径,如下所示

from PIL import Image
import pytesseract

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

您可以下载Tesseract-OCR表单https://github.com/UB-Mannheim/tesseract/wiki

答案 2 :(得分:0)

https://digi.bib.uni-mannheim.de/tesseract/

从此链接,您可以获得一个.exe文件,这将使您更容易安装tesseract。然后可以将tesseract的路径添加到环境路径中。最后您可以使用pytesseract