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