エラーの背景RAG(検索拡張生成)パイプラインを構築する際、多くの開発者が unstructured ライブラリを選択します。これは、複雑なPDFや表の解析に非常に適したツールです。しかし、strategy="hi_res" を設定すると状況が少し複雑になります。このモードでは、画像やスキャンされたドキュメントからテキストを読み取るために OCR(光学文字認識)が実行されます。システムに Tesseract エンジンが準備されていない場合、コードは即座にクラッシュし、次のエラーが発生します。
pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your PATH
根本原因pytesseract ライブラリは「架け橋」のようなものだと考えてください。これは実際の Tesseract OCR エンジンと通信するための Python コマンドを提供しますが、エンジン自体は含まれていません。このエラーが発生する原因は、主に次の3つのいずれかです。
- OSに Tesseract が完全にインストールされていない。- エンジンはインストールされているが、実行ファイルの場所をコンピュータが認識できていない(PATHが通っていない)。- Python 仮想環境が誤ったディレクトリを参照している。## ステップバイステップの解決策### ステップ1:OSに Tesseract OCR をインストールする
pip install だけでは解決できません。マシンに直接バイナリエンジンをインストールする必要があります。
macOS ユーザーの場合Homebrew を使えば簡単です。ターミナルを開いて以下を実行してください。
brew install tesseract
Ubuntu/Debian ユーザーの場合標準の Linux リポジトリに Tesseract が含まれています。以下のコマンドを実行して、エンジンと開発用ヘッダーをインストールします。
sudo apt update
sudo apt install tesseract-ocr libtesseract-dev
Windows ユーザーの場合- UB-Mannheim リポジトリから最新の 64 ビットインストーラー(例:tesseract-ocr-w64-setup-5.3.3.20231005.exe)をダウンロードします。- インストーラーを実行します。インストール先のパス(通常は C:\Program Files\Tesseract-OCR)をメモしておいてください。- スタートメニューで「システム環境変数の編集」を検索します。- 「環境変数」をクリックし、「システム環境変数」セクションにある Path 変数を選択して「編集」をクリックします。- 「新規」をクリックし、Tesseract フォルダのパスを貼り付けます。- 重要: 更新された PATH を反映させるため、IDE(VS Code や PyCharm)および開いているターミナルをすべて再起動してください。### ステップ2:Python 依存関係のインストールシステムエンジンが準備できたら、Python 環境から通信するためのライブラリがインストールされていることを確認します。
pip install "unstructured[all-docs]" pytesseract
ステップ3:実行ファイルのパスをハードコードする(クイック修正)Windows の環境変数がうまく機能しないことがあります。再起動後もエラーが消えない場合は、スクリプト内で直接 .exe を指定することで PATH を完全にバイパスできます。
import pytesseract
import platform
from unstructured.partition.pdf import partition_pdf
# システムが見つけられない場合にパスを強制指定
if platform.system() == "Windows":
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
elements = partition_pdf(filename="invoice.pdf", strategy="hi_res")
Docker デプロイ時の対応RAG アプリをコンテナでデプロイしますか? その場合は、イメージに Tesseract を組み込む必要があります。標準の python:3.10-slim イメージには、デフォルトで OCR ツールが含まれていません。本番環境を安定させるために、Dockerfile に以下の行を追加してください。
FROM python:3.10-slim
# Tesseract と Poppler のインストール(PDFレンダリングに必要)
RUN apt-get update && apt-get install -y \
tesseract-ocr \
libtesseract-dev \
poppler-utils \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY . .
RUN pip install --no-cache-dir -r requirements.txt
CMD ["python", "app.py"]
インストールの確認ターミナルで tesseract --version と入力し、システムがエンジンを認識しているか確認してください。tesseract 5.3.3 のような応答があれば成功です。Python との接続をテストするには、次の短いコードを実行します。
import pytesseract
try:
version = pytesseract.get_tesseract_version()
print(f"Success! Tesseract {version} is ready for RAG.")
except pytesseract.TesseractNotFoundError:
print("Error: Python still cannot locate the Tesseract binary.")
よくある落とし穴- 「次」のエラー (Poppler): Tesseract を修正しても pdfinfo に関するエラーが出る場合は、Poppler が不足しています。brew install poppler または apt install poppler-utils でインストールしてください。- 言語パック: Tesseract はデフォルトで英語設定です。日本語やその他の言語のドキュメントを処理する場合は、特定のデータファイルが必要です。Ubuntu の場合、ベトナム語をサポートするには sudo apt install tesseract-ocr-vie を実行します。- ゴーストプロセス: Windows で PATH を変更してもエラーが続く場合は、システムを完全に再起動してみてください。バックグラウンドの Python プロセスに対して、環境変数のレジストリが更新されないことがあります。