build: 添加 Windows 打包方案

- 更新 PyInstaller spec 配置
- 简化 build.sh 构建脚本
- 更新 build.bat Windows 打包脚本
- 添加 docs/BUILD.md 打包说明文档

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
congsh
2026-02-12 15:59:23 +08:00
parent e853161975
commit 0ce1d71a90
4 changed files with 223 additions and 189 deletions

View File

@@ -1,76 +1,46 @@
#!/bin/bash
# CutThenThink 纯云端版本打包脚本
# 无需任何本地 ML 库
# CutThenThink 极简版本打包脚本
set -e
echo "==================================="
echo "CutThenThink 纯云端版本构建"
echo "CutThenThink v2.0 极简版构建"
echo "==================================="
echo ""
echo "特点:"
echo "- OCR 使用云端 API"
echo "- AI 使用 API (OpenAI/Anthropic)"
echo "- 无需任何本地 ML 库"
echo "- 核心依赖PyQt6, requests, Pillow"
echo "- 可选 OCRRapidOCR 插件"
echo "- 无重型依赖torch, transformers, paddleocr"
echo "==================================="
# 使用系统Python和pip
# 检测 Python
PYTHON="python3"
PIP="python3 -m pip"
if ! command -v python3 &>/dev/null; then
PYTHON="python"
fi
PIP="$PYTHON -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] 清理旧的构建..."
echo "[1/5] 清理旧的构建..."
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 "[2/5] 安装构建依赖..."
$PIP install --user pyinstaller 2>/dev/null || echo " PyInstaller 已安装"
echo ""
echo "[3/5] 构建可执行文件..."
$PYTHON -m PyInstaller CutThenThink.spec --clean
echo ""
echo "==================================="
echo "构建完成!"
echo "可执行文件: dist/CutThenThink"
echo ""
echo "输出位置:"
echo " - dist/CutThenThink/ # 可执行文件"
echo ""
echo "首次运行前请配置:"
echo " 1. 可选安装 OCRpip install -r requirements-ocr.txt"
echo " 2. 配置文件:~/.cutthenthink/config.yaml"
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