このページの内容
結論(CPU、OS 共通):python -m pip install paddlepaddle==3.2.0 を実行してから、python -m pip install paddleocr==3.7.0 を実行します。PaddlePaddle のバージョンは必ず固定してください。バージョンを指定しないと現在は 3.3.1 が入り、PaddleOCR 3.7.0 の標準 CPU パイプラインがクラッシュします。NVIDIA GPU を使う場合、PaddlePaddle は PyPI ではなく paddlepaddle.org.cn からインストールする必要があります。
インストールコマンド生成#
インストールコマンドを生成#
選択するとすぐ更新各コンポーネントの関係#
PaddleOCR 3.x 以降、paddleocr パッケージは独自のランタイムを同梱していません。PaddleX(自動でインストールされ、PaddleOCR 3.7 では 3.7.x)の上に載る薄いレイヤーで、別途インストールした推論エンジンでモデルを実行します。13
paddleocr CLI、パイプラインエンジンを入れずに実行すると、標準パイプラインは最初の推論で "Engine 'paddle_static' is unavailable because dependency 'paddlepaddle' is not installed." というエラーで失敗します。初回実行時に最も多いエラーですが、下の手順 2 を行えば解決します。
engine パラメータには "paddle"、"paddle_static"、"paddle_dynamic"、"transformers"、"onnxruntime" を指定できます。指定しない場合、ほとんどのケースで PaddlePaddle が使われます。公式ドキュメントは依存関係が衝突する可能性を警告しているため、1 つの環境に入れるエンジンは 1 つにしてください。3
CPU 版のインストール(Linux・Windows・macOS)#
クリーンな仮想環境を作る#
python3 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pippy -3.12 -m venv .venv .venv\Scripts\activate python -m pip install --upgrade pipバージョンを固定してエンジンをインストール#
python -m pip install paddlepaddle==3.2.0公式インストールガイドが指定しているバージョンです(ガイドでは
paddlepaddle.org.cnからインストールしていますが、PyPI でも Linux x86-64、Linux ARM64、Windows、Apple Silicon 向けに Python 3.9〜3.13 の 3.2.0 wheel が公開されており、私たちはそちらを使いました)。12PaddleOCR をインストール#
python -m pip install paddleocr==3.7.0テキスト OCR 以外の機能が必要な場合は extra を追加します。PP-StructureV3 と PaddleOCR-VL には
"paddleocr[doc-parser]"、すべての機能には"paddleocr[all]"、Word・Excel・PowerPoint から Markdown への変換には"paddleocr[doc2md]"です。実行する#
paddleocr ocr -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png --save_path ./output初回実行時に PP-OCRv6 medium(私たちの環境では検出・認識モデルを合わせてディスク上で約 139 MB)が
~/.paddlex/official_modelsにダウンロードされます。2 回目以降は数秒で起動します。
3.3.1 の落とし穴。2026年10月27日、バージョンを指定せずに paddlepaddle(PyPI から 3.3.1)を PaddleOCR 3.7.0 と一緒に Linux へインストールしたところ、最初の predict() が次のエラーで失敗しました。
NotImplementedError: (Unimplemented) ConvertPirAttribute2RuntimeAttribute not support [pir::ArrayAttribute<pir::DoubleAttribute>]
paddlepaddle==3.2.0 に固定すると解決しました。すでに 3.3.1 を使っている場合に有効だった残り 2 つの回避策は、トラブルシューティングで紹介しています。
ONNX Runtime を使った CPU 版のインストール(テストで最速)#
PaddleOCR 3.5 で、エンジンとして ONNX Runtime が追加されました。4 vCPU のテスト機では、PP-OCRv6 の全ティアが PaddlePaddle 3.2.0 より 1.4〜1.5 倍速く動作し、出力テキストも同一でした。公式ドキュメントに記載があるのは NVIDIA CUDA 12.x 向けの onnxruntime-gpu だけですが、CPU では通常の onnxruntime パッケージを使いました。37
python -m pip install paddleocr==3.7.0 onnxruntime
paddleocr ocr -i receipt.jpg --engine onnxruntime --save_path ./outputfrom paddleocr import PaddleOCR
ocr = PaddleOCR(engine="onnxruntime") # downloads the *_onnx model variants
result = ocr.predict("receipt.jpg")
print(result[0]["rec_texts"])paddleocr 3.7.0 と onnxruntime 1.31.1 だけを入れた(PaddlePaddle を含まない)新しい環境で、Python API と CLI の両方の動作を確認しました。初回読み込み時には黄色の [W:onnxruntime ... Removing initializer ...] という行が大量に出ますが、グラフ最適化に関する無害な警告で、エラーではありません。
1 ページあたりの秒数。5 つのテスト文書の平均(ウォームアップ後 3 回の中央値)。短いほど高速。
| モデル | PaddlePaddle 3.2.0 | ONNX Runtime |
|---|---|---|
| PP-OCRv6 medium | 4.51 s | 2.92 s |
| PP-OCRv6 small | 1.23 s | 0.90 s |
| PP-OCRv6 tiny | 0.39 s | 0.26 s |
| PP-OCRv5 mobile | 0.90 s | 0.73 s |
ONNX Runtime では PP-OCRv6 のモデルを使ってください。私たちのテストでは PP-OCRv5_server が PaddlePaddle より約 7 倍遅くなったため、旧モデルのままエンジンだけを切り替えるのは避けてください。
NVIDIA GPU 版のインストール#
PaddlePaddle 3.x の GPU 版 wheel は PyPI にありません。PyPI にある最新の paddlepaddle-gpu は 2024年9月の 2.6.2 で、PaddleOCR 3.x には PaddlePaddle 3.0 以降が必要です。お使いのドライバーに合わせて、公式インデックスからインストールしてください。12
| NVIDIA ドライバー | ビルド | コマンド |
|---|---|---|
| ≥ 550.54.14(Linux/Windows) | CUDA 12.6 | python -m pip install paddlepaddle-gpu==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/ |
| ≥ 450.80.02(Linux)/ ≥ 452.39(Windows) | CUDA 11.8 | python -m pip install paddlepaddle-gpu==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ |
| RTX 50 シリーズ、Linux | CUDA 12.9 | python -m pip install paddlepaddle-gpu==3.2.1 -i https://www.paddlepaddle.org.cn/packages/stable/cu129/(公式の Blackwell 向けガイドより) |
| RTX 50 シリーズ、Windows | 専用 wheel | Python 3.9〜3.12 向けの開発版 wheel。公式の PaddlePaddle インストールページにリンクがあります |
重要なのはドライバーのバージョンだけです。マシンにインストールされている CUDA Toolkit は関係ないと、公式ドキュメントに明記されています。nvidia-smi でドライバーを確認し、PaddlePaddle が GPU を認識しているか確かめてください。
python -c "import paddle; print(paddle.is_compiled_with_cuda())" # must print True
paddleocr ocr -i receipt.jpg --device gpu:0Python では PaddleOCR(device="gpu:0") でデバイスを指定します。2.x の引数 use_gpu=True は廃止されており、ValueError: Unknown argument: use_gpu になります。詳しくは移行ガイドをご覧ください。
macOS(Apple Silicon と Intel)#
PyPI では 3.x のすべてのリリースで Apple Silicon(macosx_11_0_arm64)向けの PaddlePaddle wheel が公開されているため、M1〜M4 の Mac でも上記の CPU 用コマンドがそのまま使えます。macOS には CUDA がないので、device は既定値のままにしてください。公式の Apple Silicon 向け PaddleOCR-VL ガイドによると、精度と速度は M4 で検証済みで、対応するのは PaddlePaddle エンジンのみ、公式 Docker イメージは Apple Silicon では動作しないとされています。2
Intel Mac は事情が異なります。PyPI で x86-64 macOS 向けの最後の wheel は PaddlePaddle 3.0.0 です。PaddleOCR 3.x の最低要件は満たしていますが、私たちは Intel Mac では検証していません。上のツールで macOS(Intel)を選ぶと、このバージョンに自動で固定されます。
Windows#
pyランチャーと venv を使ってください(手順 1 を参照)。それ以外のコマンドは Linux と同じです。- RTX 50 シリーズの GPU には、GPU の表で説明した専用 wheel が必要です。
- 高性能推論(
enable_hpi)は Windows では直接サポートされていません。公式ドキュメントは Docker か WSL の利用を推奨しています。5
Docker#
公式イメージは Baidu のレジストリで公開されています。PaddleOCR-VL にはすぐに使えるイメージ(約 8 GB、モデル同梱の -offline 版は約 10 GB)があり、Docker 19.03 以降と CUDA 12.6 以降に対応した NVIDIA ドライバーが必要です。6
docker run -it --gpus all --network host \
ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-vl:latest-nvidia-gpu /bin/bashテキスト OCR と PP-StructureV3 については、公式ドキュメントに専用の PaddleOCR イメージはありません。私たちが検証したのと同じ固定バージョンのパッケージを使う最小構成のイメージは、次のように作れます(この Dockerfile は私たちの例であり、公式のものではありません)。
FROM python:3.12-slim
RUN apt-get update && apt-get install -y --no-install-recommends libgl1 libglib2.0-0 \
&& rm -rf /var/lib/apt/lists/*
RUN python -m pip install --no-cache-dir paddlepaddle==3.2.0 paddleocr==3.7.0
# optional: bake models into the image so containers start offline
RUN python -c "from paddleocr import PaddleOCR; PaddleOCR()"libgl1 の行は、slim イメージでおなじみの ImportError: libGL.so.1 を防ぎます。このエラーを opencv-python-headless への置き換えで「直す」のはやめてください。PaddleX は opencv-contrib-python をパッケージ名で確認するため、置き換えると OCR パイプラインが動かなくなります。理由
Google Colab と Kaggle#
!pip install paddlepaddle-gpu==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
!pip install "paddleocr[doc-parser]==3.7.0"!pip install paddlepaddle==3.2.0 "paddleocr==3.7.0"インストール後にランタイムを再起動してから、from paddleocr import PaddleOCR を実行してください。
対応する Python のバージョン#
| コンポーネント | 宣言されている要件 | 実際の対応範囲 |
|---|---|---|
paddleocr 3.7.0 | Python ≥ 3.8(classifiers は 3.8〜3.13) | コア OCR と [doc2md] は 3.8 以降 |
[doc-parser]、[ie]、[trans]、[all] | Python ≥ 3.9(インストールガイドより) | 3.9〜3.13 |
paddlepaddle 3.1〜3.3 の wheel | requires_python なし。wheel は cp39〜cp313 | 3.9〜3.13 |
| 高性能推論 | Linux x86-64、Python 3.8〜3.12 | 3.13 は非対応 |
paddleocr-mcp | Python ≥ 3.10 | 3.10 以降 |
本サイトの検証はすべて Python 3.13 で行いました。オプション機能をすべて使いたい場合は、Python 3.10〜3.12 が最も無難です。25
モデルのダウンロード、キャッシュ、オフライン利用#
モデルは初回使用時に ~/.paddlex/official_models/<model_name> にダウンロードされます。キャッシュの場所を変えるには PADDLE_PDX_CACHE_HOME を設定します。既定の取得元は Hugging Face です。Hugging Face が遅い、またはアクセスできない場合は、PADDLE_PDX_MODEL_SOURCE を bos(Baidu)、modelscope、aistudio のいずれかに設定してください。4
export PADDLE_PDX_MODEL_SOURCE=bos # Windows: set PADDLE_PDX_MODEL_SOURCE=bos
export PADDLE_PDX_CACHE_HOME=/data/paddlex # optional: move the model cacheインターネットに接続できないマシンでは、接続できるマシンからモデルのフォルダーを同じキャッシュパスにコピーするか、text_detection_model_dir と text_recognition_model_dir でローカルのフォルダーを指定してください。
ドキュメントに書かれていないソースコード上の挙動が 2 つあります。PaddleX はダウンロード前に各モデルホストへの到達性を確認し、PADDLE_PDX_DISABLE_MODEL_SOURCE_CHECK を設定するとこの確認を省略します。ただしこの値は文字列のまま読まれるため、空でなければ 0 や false であっても確認が無効になります。4
インストールの確認#
python -c "import paddleocr; print(paddleocr.__version__)" # 3.7.0
python -c "import paddle; print(paddle.__version__)" # 3.2.0
python -c "import paddle; paddle.utils.run_check()" # "PaddlePaddle is installed successfully!"PaddleOCR 2.x からのアップグレード#
3.x には後方互換性がありません。ocr(img, cls=True)、use_gpu、use_angle_cls、draw_ocr、PPStructure は廃止または名称変更されています。旧コードを 2.x → 3.x 変換ツールに貼り付ければ、変更箇所が正確にわかります。当面 2.x を使い続ける必要がある場合は、pip install "paddleocr<3" でバージョンを固定してください。
インストールに関するよくある質問#
pip install paddleocr で PaddlePaddle がインストールされないのはなぜですか?
3.x 以降の PaddleOCR は複数のエンジン(PaddlePaddle、ONNX Runtime、Transformers)で動作するため、特定のエンジンを強制しなくなりました。エンジンを 1 つだけ自分でインストールしてから、paddleocr をインストールしてください。
PaddleOCR 3.7 にはどの PaddlePaddle バージョンを入れればよいですか?
一般向けのインストールガイドは 3.2.0 を指定しており、私たちが動作を確認したのもこのバージョンです。新しい PaddleOCR-VL のハードウェア別ガイドでは 3.2.1 を使っています。バージョンを指定しないインストールは避けてください。私たちのテストでは 3.3.1 で標準の CPU パイプラインが動きませんでした。
paddlepaddle-gpu を PyPI から pip install できますか?
PaddleOCR 3.x 向けにはできません。PyPI にある最新の paddlepaddle-gpu は 2.6.2 です。上の表のとおり、-i https://www.paddlepaddle.org.cn/packages/stable/cu126/(または cu118)を指定してください。
PaddleOCR を Windows にインストールするには?
手順は Linux とほぼ同じです。py -3.12 -m venv .venv で仮想環境を作って有効化し、python -m pip install paddlepaddle==3.2.0、python -m pip install paddleocr==3.7.0 の順に実行します。RTX 50 シリーズの GPU には専用 wheel が必要で、高性能推論(enable_hpi)は Windows では直接サポートされていません(Docker か WSL を推奨)。
PaddleOCR の動作に必要なハードウェアは?
テキスト OCR は最近の CPU であれば動作します。私たちのテストでは、メモリ使用量のピークは PP-OCRv6 medium で約 2.6〜2.9 GB、small で 1.5〜1.9 GB、tiny で約 1.3〜1.4 GB でした。GPU が本当に必要になるのは PaddleOCR-VL と大量処理のサービングくらいです。
PaddleOCR は ARM(Raspberry Pi、AWS Graviton、Apple Silicon)で動きますか?
Apple Silicon は PyPI の wheel で動作します。Linux ARM64 では、PyPI の aarch64 向け PaddlePaddle wheel は 3.2.x まで(3.3.x はなし)なので、3.2.0 に固定してください。ARM ボードでの動作は私たち自身では検証していません。
インターネットに接続できない環境に PaddleOCR をインストールするには?
接続できるマシンで pip download を使って wheel をダウンロードし、~/.paddlex/official_models からモデルのフォルダーをコピーしたうえで、オフラインのマシンで pip install --no-index --find-links を使ってインストールします。PaddleOCR-VL の場合は、モデル同梱の公式 -offline Docker イメージがあります。
pip で依存関係の衝突が起きた場合は?
推論エンジンを 1 つだけ入れた新しい仮想環境からやり直してください。公式 FAQ では代替手段として conda install -c conda-forge paddleocr も紹介されています。具体的なエラーが出ている場合は、エラー解決ツールに貼り付けてください。
出典
- 公式インストールガイド:installation.en.md、paddlepaddle_installation.en.md(ドライバー要件、インデックス URL、RTX 50 用 wheel)、quick_start.en.md — コミット dab3fe3(2026年9月16日)時点の内容。
- 2026-10-27 に確認した PyPI のメタデータ:paddleocr(3.7.0、requires_python ≥3.8、extras)、paddlepaddle(最新は 3.3.1、バージョンごとの wheel タグ)、paddlepaddle-gpu(最新は 2.6.2、2024-09-13)、paddlex(3.7.2)。
- 推論エンジンと
engineパラメータ:inference_engine.en.md。指定できる値はpaddleocr/_common_args.pyで確認。 - モデルの取得元とキャッシュ:PaddleX 3.7.2 のソースコード(
paddlex/utils/flags.py、paddlex/inference/utils/official_models.py、paddlex/utils/cache.py)。 - 高性能推論の制約:high_performance_inference.en.md。
- Docker イメージ:PaddleOCR-VL.en.md と paddlepaddle_installation.en.md。
- 私たちのテスト:Linux x86-64、Python 3.13、4 vCPU、2026-10-27 — paddleocr 3.7.0 と paddlepaddle 3.3.1(失敗)、3.2.0(成功)、onnxruntime(成功)の組み合わせ。ログとスクリプトはベンチマーク (EN) に掲載。