refactor: 重构为纯云端版本,移除所有本地ML库依赖
重大更改: 1. requirements.txt - 移除 paddleocr/paddlepaddle,使用纯 API 版本 2. src/core/ocr.py - 完全重写 - 移除 PaddleOCREngine 和 ensure_paddleocr() - 移除 numpy 依赖(不再需要) - 实现完整的 CloudOCREngine - 支持百度/腾讯/阿里云 OCR API - 添加自定义 API 支持 3. src/config/settings.py - 简化 OCR 配置 - OCRMode 枚举仅保留 CLOUD - OCRConfig 添加 provider 字段 4. src/core/__init__.py - 移除 PaddleOCREngine 导出 5. src/gui/main_window.py - 移除 ensure_paddleocr 导入 6. build.bat/build.sh - 简化构建参数 - 移除所有 ML 库的 --exclude-module - 移除 pyi_hooks 依赖 - 添加 openai/anthropic hidden-import 测试: - ✓ 所有核心模块导入成功 - ✓ 没有 PaddleOCR 相关错误 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
76
build.sh
76
build.sh
@@ -1,10 +1,17 @@
|
||||
#!/bin/bash
|
||||
# CutThenThink 简化打包脚本
|
||||
# CutThenThink 纯云端版本打包脚本
|
||||
# 无需任何本地 ML 库
|
||||
|
||||
set -e
|
||||
|
||||
echo "==================================="
|
||||
echo "CutThenThink 打包脚本"
|
||||
echo "CutThenThink 纯云端版本构建"
|
||||
echo "==================================="
|
||||
echo ""
|
||||
echo "特点:"
|
||||
echo "- OCR 使用云端 API"
|
||||
echo "- AI 使用 API (OpenAI/Anthropic)"
|
||||
echo "- 无需任何本地 ML 库"
|
||||
echo "==================================="
|
||||
|
||||
# 使用系统Python和pip
|
||||
@@ -12,46 +19,27 @@ PYTHON="python3"
|
||||
PIP="python3 -m pip"
|
||||
|
||||
echo ""
|
||||
echo "1/4. 安装打包工具..."
|
||||
echo "[1/4] 安装打包工具..."
|
||||
$PIP install --user pyinstaller 2>/dev/null || echo " PyInstaller可能已安装"
|
||||
|
||||
echo ""
|
||||
echo "2/4. 安装项目依赖..."
|
||||
$PIP install --user -r requirements.txt 2>/dev/null || echo " 依赖可能已安装"
|
||||
echo "[2/4] 安装核心依赖..."
|
||||
$PIP install --user "PyQt6>=6.7.0" 2>/dev/null || echo " PyQt6可能已安装"
|
||||
$PIP install --user "SQLAlchemy>=2.0.36" 2>/dev/null || echo " SQLAlchemy可能已安装"
|
||||
$PIP install --user openai anthropic 2>/dev/null || echo " AI库可能已安装"
|
||||
$PIP install --user requests pyyaml pillow pyperclip 2>/dev/null || echo " 工具库可能已安装"
|
||||
|
||||
echo ""
|
||||
echo "3/4. 创建应用入口(如果不存在)..."
|
||||
if [ ! -f "src/main.py" ]; then
|
||||
cat > src/main.py << 'PYEOF'
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
CutThenThink 应用入口
|
||||
"""
|
||||
import sys
|
||||
import os
|
||||
|
||||
# 添加src目录到路径
|
||||
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
sys.path.insert(0, current_dir)
|
||||
|
||||
from gui.main_window import main
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
PYEOF
|
||||
fi
|
||||
echo "[3/4] 清理旧的构建..."
|
||||
rm -rf build dist
|
||||
|
||||
echo ""
|
||||
echo "4/4. 开始打包..."
|
||||
echo "NOTE: 使用自定义 hooks 排除与 Python 3.13 不兼容的 ML 库"
|
||||
echo "[4/4] 开始构建..."
|
||||
$PYTHON -m PyInstaller \
|
||||
--name "CutThenThink" \
|
||||
--windowed \
|
||||
--onefile \
|
||||
--add-data "src:src" \
|
||||
--runtime-hook=pyi_hooks/pyi_rth_ignore_torch.py \
|
||||
--additional-hooks-dir=pyi_hooks \
|
||||
--hidden-import=PyQt6.QtCore \
|
||||
--hidden-import=PyQt6.QtGui \
|
||||
--hidden-import=PyQt6.QtWidgets \
|
||||
@@ -59,36 +47,24 @@ $PYTHON -m PyInstaller \
|
||||
--hidden-import=sqlalchemy.orm \
|
||||
--hidden-import=PIL \
|
||||
--hidden-import=PIL.Image \
|
||||
--hidden-import=PIL.ImageEnhance \
|
||||
--hidden-import=PIL.ImageFilter \
|
||||
--hidden-import=numpy \
|
||||
--hidden-import=pyperclip \
|
||||
--hidden-import=tkinter \
|
||||
--hidden-import=tkinter.ttk \
|
||||
--hidden-import=tkinter.scrolledtext \
|
||||
--hidden-import=tkinter.messagebox \
|
||||
--hidden-import=yaml \
|
||||
--hidden-import=requests \
|
||||
--hidden-import=openai \
|
||||
--hidden-import=anthropic \
|
||||
--collect-all pyqt6 \
|
||||
--exclude-module=torch \
|
||||
--exclude-module=transformers \
|
||||
--exclude-module=tensorflow \
|
||||
--exclude-module=onnx \
|
||||
--exclude-module=onnxruntime \
|
||||
--exclude-module=sentencepiece \
|
||||
--exclude-module=tokenizers \
|
||||
--exclude-module=diffusers \
|
||||
--exclude-module=accelerate \
|
||||
--exclude-module=datasets \
|
||||
--exclude-module=huggingface_hub \
|
||||
--exclude-module=safetensors \
|
||||
src/main.py
|
||||
|
||||
echo ""
|
||||
echo "==================================="
|
||||
echo "打包完成!"
|
||||
echo "构建完成!"
|
||||
echo "可执行文件: dist/CutThenThink"
|
||||
echo "==================================="
|
||||
echo ""
|
||||
echo "首次运行请配置:"
|
||||
echo "- AI API Key (OpenAI/Anthropic)"
|
||||
echo "- 云端 OCR API"
|
||||
echo ""
|
||||
|
||||
# 测试运行提示
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user