OCR Worker 改用 RapidOCR/ONNX,修复 Paddle SIGILL。

This commit is contained in:
dekun
2026-06-28 15:27:59 +08:00
parent 035b65dcc8
commit 4de460c235
5 changed files with 34 additions and 108 deletions
+6 -27
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# 在带 NVIDIA 显卡的 Linux 机器上安装 OCR Worker(由 deploy/install.sh 自动调用
# OCR Worker 安装(RapidOCR / ONNX,无需 Paddle/GPU
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
@@ -8,6 +8,7 @@ PORT="${OCR_PORT:-23567}"
PIP_MIRROR="${PIP_MIRROR:-https://pypi.tuna.tsinghua.edu.cn/simple}"
echo "==> OCR Worker 安装目录: ${ROOT}"
echo "==> 引擎: RapidOCR (ONNX CPU,无需 cuDNN/GPU)"
if ! command -v python3 >/dev/null; then
echo "错误: 请先安装 python3"
@@ -15,7 +16,7 @@ if ! command -v python3 >/dev/null; then
fi
if [[ -d "${VENV}" ]]; then
echo "==> 已有虚拟环境,跳过 python3 -m venv"
echo "==> 已有虚拟环境"
else
python3 -m venv "${VENV}"
fi
@@ -23,33 +24,11 @@ fi
# shellcheck disable=SC1091
source "${VENV}/bin/activate"
pip install -U pip wheel -i "${PIP_MIRROR}"
install_paddle() {
local use_gpu="${OCR_USE_GPU:-false}"
if [[ "${use_gpu}" == "true" ]] && command -v nvidia-smi >/dev/null 2>&1 && ldconfig -p 2>/dev/null | grep -q libcudnn; then
local cuda_major
cuda_major="$(nvidia-smi 2>/dev/null | sed -n 's/.*CUDA Version: \([0-9]*\)\.[0-9]*/\1/p' | head -1)"
cuda_major="${cuda_major:-11}"
echo "==> 安装 paddlepaddle-gpu (CUDA ${cuda_major}.x)…"
if [[ "${cuda_major}" -ge 12 ]]; then
pip install paddlepaddle-gpu==2.6.2 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/ \
|| pip install paddlepaddle-gpu==2.6.2 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
else
pip install paddlepaddle-gpu==2.6.2 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
fi
else
echo "==> 安装 paddlepaddle CPU(无 cuDNN 或 OCR_USE_GPU=false)…"
pip install paddlepaddle==2.6.2 -i "${PIP_MIRROR}"
fi
pip install 'protobuf>=3.20,<4' -q
}
install_paddle
pip uninstall -y paddlepaddle paddlepaddle-gpu paddleocr 2>/dev/null || true
pip install -r "${ROOT}/requirements.txt" -i "${PIP_MIRROR}"
chmod +x "${ROOT}/run.sh" "${ROOT}/start.sh" 2>/dev/null || true
echo ""
python3 -c "import fastapi, uvicorn, paddle; print('paddle', paddle.__version__, 'OK')"
python3 -c "from rapidocr_onnxruntime import RapidOCR; print('RapidOCR OK')"
echo ""
echo "==> OCR Worker 安装完成。由 deploy/install.sh 通过 screen 自动启动。"
echo " 手动管理: bash $(dirname "$ROOT")/ocr-screen.sh status"
echo "==> 安装完成。管理: bash $(dirname "$ROOT")/ocr-screen.sh status"