#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" OCR_VENV_DIR="${OCR_VENV_DIR:-${ROOT_DIR}/.venv-ocr312}" PYTHON_BIN="${PYTHON_BIN:-python3.12}" PADDLEPADDLE_GPU_VERSION="${PADDLEPADDLE_GPU_VERSION:-3.3.0}" PADDLEOCR_VERSION="${PADDLEOCR_VERSION:-3.6.0}" PADDLE_GPU_INDEX_URL="${PADDLE_GPU_INDEX_URL:-https://www.paddlepaddle.org.cn/packages/stable/cu126/}" if ! command -v "${PYTHON_BIN}" >/dev/null 2>&1; then echo "python3.12 不存在,请先安装 Python 3.12。" >&2 exit 1 fi apt-get update apt-get install -y --no-install-recommends libgl1 libglib2.0-0 poppler-utils rm -rf "${OCR_VENV_DIR}" "${PYTHON_BIN}" -m venv "${OCR_VENV_DIR}" "${OCR_VENV_DIR}/bin/pip" install --upgrade pip "${OCR_VENV_DIR}/bin/pip" install \ "paddlepaddle-gpu==${PADDLEPADDLE_GPU_VERSION}" \ -i "${PADDLE_GPU_INDEX_URL}" "${OCR_VENV_DIR}/bin/pip" install "paddleocr==${PADDLEOCR_VERSION}" "${OCR_VENV_DIR}/bin/python" - <<'PY' import paddle print("PaddlePaddle:", paddle.__version__) print("CUDA compiled:", paddle.is_compiled_with_cuda()) print("CUDA device count:", paddle.device.cuda.device_count()) paddle.utils.run_check() PY echo "PaddleOCR GPU runtime ${PADDLEOCR_VERSION} 已安装到 ${OCR_VENV_DIR}"