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