diff --git a/requirements.txt b/requirements.txt index e43d7ce..6dc50ac 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ email-validator>=2.0.0 # For pydantic EmailStr validation # ===== OCR Engine ===== paddleocr>=3.0.0 -paddlepaddle>=3.0.0 +# paddlepaddle>=3.0.0 # Installed separately in setup script (GPU/CPU version) paddlex[ocr]>=3.0.0 # Required for PP-StructureV3 layout analysis # ===== Image Processing ===== diff --git a/setup_dev_env.sh b/setup_dev_env.sh index 5721017..4797b3b 100755 --- a/setup_dev_env.sh +++ b/setup_dev_env.sh @@ -106,6 +106,9 @@ echo -e "${YELLOW}[6/9] 偵測 GPU 和 CUDA 支援...${NC}" # GPU 偵測函數 detect_gpu() { + # 初始化變量 + PADDLE_INDEX="" + # 檢查是否有 NVIDIA GPU if command -v nvidia-smi &> /dev/null; then echo -e "${GREEN}✓ 偵測到 NVIDIA GPU${NC}" @@ -120,19 +123,29 @@ detect_gpu() { CUDA_MAJOR=$(echo $CUDA_VERSION | cut -d. -f1) CUDA_MINOR=$(echo $CUDA_VERSION | cut -d. -f2) - if [ "$CUDA_MAJOR" -ge 12 ]; then + if [ "$CUDA_MAJOR" -ge 13 ]; then + echo -e "${YELLOW}⚠ CUDA 13.x 偵測到${NC}" + echo "PaddlePaddle 目前最高支援 CUDA 12.x" + echo "將嘗試安裝 CUDA 12.x 編譯的 GPU 版本(可能兼容)" + USE_GPU=true + PADDLE_PACKAGE="paddlepaddle-gpu==3.0.0b2" # 使用支援 CUDA 12.x 的版本 + PADDLE_INDEX="https://www.paddlepaddle.org.cn/packages/stable/cu123/" + elif [ "$CUDA_MAJOR" -eq 12 ]; then echo "將安裝 PaddlePaddle GPU 版本 (CUDA 12.x)" USE_GPU=true - PADDLE_PACKAGE="paddlepaddle-gpu" + PADDLE_PACKAGE="paddlepaddle-gpu==3.0.0b2" + PADDLE_INDEX="https://www.paddlepaddle.org.cn/packages/stable/cu123/" elif [ "$CUDA_MAJOR" -eq 11 ]; then if [ "$CUDA_MINOR" -ge 7 ]; then echo "將安裝 PaddlePaddle GPU 版本 (CUDA 11.7+)" USE_GPU=true - PADDLE_PACKAGE="paddlepaddle-gpu" + PADDLE_PACKAGE="paddlepaddle-gpu==3.0.0b2" + PADDLE_INDEX="https://www.paddlepaddle.org.cn/packages/stable/cu118/" elif [ "$CUDA_MINOR" -ge 2 ]; then echo "將安裝 PaddlePaddle GPU 版本 (CUDA 11.2-11.6)" USE_GPU=true - PADDLE_PACKAGE="paddlepaddle-gpu" + PADDLE_PACKAGE="paddlepaddle-gpu==3.0.0b2" + PADDLE_INDEX="https://www.paddlepaddle.org.cn/packages/stable/cu117/" else echo -e "${YELLOW}⚠ CUDA 版本過舊 ($CUDA_VERSION),建議升級到 11.2+${NC}" echo "將安裝 CPU 版本" @@ -172,10 +185,16 @@ echo "" echo -e "${YELLOW}安裝 PaddlePaddle...${NC}" if [ "$USE_GPU" = true ]; then echo "安裝 GPU 加速版本..." - pip install $PADDLE_PACKAGE -i https://pypi.tuna.tsinghua.edu.cn/simple + if [ -n "$PADDLE_INDEX" ]; then + echo "使用官方源: $PADDLE_INDEX" + pip install "$PADDLE_PACKAGE" -i "$PADDLE_INDEX" + else + echo "使用 PyPI..." + pip install "$PADDLE_PACKAGE" + fi else echo "安裝 CPU 版本..." - pip install $PADDLE_PACKAGE -i https://pypi.tuna.tsinghua.edu.cn/simple + pip install paddlepaddle fi # 安裝其他依賴(跳過 requirements.txt 中的 paddlepaddle)