この記事は過去のエラー解決メモを整理したものです。
現在の推奨手順とは異なる可能性があります。
公式ドキュメントを確認して最新情報と差分がないかを確認してください。
事象
Tesseract OCRをPythonから使おうとしたところ、tools が定義されていないというエラーが発生した。
Microsoft Windows [Version 10.0.19043.1288]
(c) Microsoft Corporation. All rights reserved.
D:\programs>D:/python/python.exe
Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> if len(tools) == 0:
... print("No OCR tool found")
... sys.exit(1)
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'tools' is not defined
環境
- Windows 10
- Python 3.9.6
- Tesseract OCR
- pyocr
- VSCode 1.62.0
原因
Windowsのコンソールと実行環境の文字コードが一致していなかったため。?
対策
まず、次のコードで利用可能なOCRツールを取得しようとした。
from PIL import Image
import sys
import pyocr
import pyocr.builders
import matplotlib.pyplot as plt
tools = pyocr.get_available_tools()
tools
- 下のように
pyocr.tesseract.TESSERACT_CMDにTesseract OCRの実行ファイルパスを指定する。tesseract.exeのパスは、インストールした場所に合わせて変更する。
from PIL import Image
import sys
import pyocr
import pyocr.builders
import matplotlib.pyplot as plt
pyocr.tesseract.TESSERACT_CMD = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
tools = pyocr.get_available_tools()
tools