python 使用 pytesseract 时出现 FileNotFoundError

python FileNotFoundError when using pytesseract

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

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')))

请有人告诉我为什么,以及如何解决它?

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

  • http://code.google.com/p/tesseract-ocr/ 安装 google tesseract-ocr。 您必须能够以 "tesseract" 的形式调用 tesseract 命令。如果这 不是这种情况,例如因为 tesseract 不在你的路径中,你会 必须更改 'tesseract.py'.
  • 顶部的 "tesseract_cmd" 变量

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

当您使用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

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

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