重大更改: 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>
77 lines
2.0 KiB
Bash
77 lines
2.0 KiB
Bash
#!/bin/bash
|
|
# CutThenThink 纯云端版本打包脚本
|
|
# 无需任何本地 ML 库
|
|
|
|
set -e
|
|
|
|
echo "==================================="
|
|
echo "CutThenThink 纯云端版本构建"
|
|
echo "==================================="
|
|
echo ""
|
|
echo "特点:"
|
|
echo "- OCR 使用云端 API"
|
|
echo "- AI 使用 API (OpenAI/Anthropic)"
|
|
echo "- 无需任何本地 ML 库"
|
|
echo "==================================="
|
|
|
|
# 使用系统Python和pip
|
|
PYTHON="python3"
|
|
PIP="python3 -m pip"
|
|
|
|
echo ""
|
|
echo "[1/4] 安装打包工具..."
|
|
$PIP install --user pyinstaller 2>/dev/null || echo " PyInstaller可能已安装"
|
|
|
|
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] 清理旧的构建..."
|
|
rm -rf build dist
|
|
|
|
echo ""
|
|
echo "[4/4] 开始构建..."
|
|
$PYTHON -m PyInstaller \
|
|
--name "CutThenThink" \
|
|
--windowed \
|
|
--onefile \
|
|
--add-data "src:src" \
|
|
--hidden-import=PyQt6.QtCore \
|
|
--hidden-import=PyQt6.QtGui \
|
|
--hidden-import=PyQt6.QtWidgets \
|
|
--hidden-import=sqlalchemy \
|
|
--hidden-import=sqlalchemy.orm \
|
|
--hidden-import=PIL \
|
|
--hidden-import=PIL.Image \
|
|
--hidden-import=pyperclip \
|
|
--hidden-import=yaml \
|
|
--hidden-import=requests \
|
|
--hidden-import=openai \
|
|
--hidden-import=anthropic \
|
|
--collect-all pyqt6 \
|
|
src/main.py
|
|
|
|
echo ""
|
|
echo "==================================="
|
|
echo "构建完成!"
|
|
echo "可执行文件: dist/CutThenThink"
|
|
echo "==================================="
|
|
echo ""
|
|
echo "首次运行请配置:"
|
|
echo "- AI API Key (OpenAI/Anthropic)"
|
|
echo "- 云端 OCR API"
|
|
echo ""
|
|
|
|
# 测试运行提示
|
|
echo ""
|
|
read -p "是否测试运行?(y/n) " -n 1 -r
|
|
echo
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
echo "启动测试..."
|
|
./dist/CutThenThink
|
|
fi
|