mirror of
https://gitcode.com/JianFeeeee/TrulyMEM-TrueHumanMEM.git
synced 2026-09-20 08:58:15 +00:00
- 在打包过程中自动创建和激活虚拟环境
- 在虚拟环境中安装依赖,避免系统环境污染
- 打包完成后自动清理虚拟环境
- 统一使用python命令而非python3
🤖 Generated with CodeArts Agent
90 lines
2.4 KiB
Bash
90 lines
2.4 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
echo "===== Building TrulyMEM for macOS ====="
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
cd "$PROJECT_ROOT"
|
|
|
|
echo "Project root: $PROJECT_ROOT"
|
|
|
|
if ! command -v python3 &> /dev/null; then
|
|
echo "Error: python3 not found"
|
|
exit 1
|
|
fi
|
|
|
|
# 创建并激活虚拟环境
|
|
VENV_DIR="$PROJECT_ROOT/.venv_build"
|
|
|
|
echo "Creating virtual environment: $VENV_DIR"
|
|
python3 -m venv "$VENV_DIR"
|
|
|
|
echo "Activating virtual environment..."
|
|
source "$VENV_DIR/bin/activate"
|
|
|
|
echo "Upgrading pip in virtual environment..."
|
|
pip install --upgrade pip
|
|
|
|
echo "Installing dependencies in virtual environment..."
|
|
pip install -r requirements.txt
|
|
|
|
echo "Generating ICNS icon..."
|
|
if [ -d "pic/TrulyMEM.iconset" ]; then
|
|
iconutil -c icns pic/TrulyMEM.iconset -o pic/TrulyMEM.icns
|
|
echo "ICNS icon generated: pic/TrulyMEM.icns"
|
|
fi
|
|
|
|
echo "Cleaning previous builds..."
|
|
rm -rf build/dist build/__pycache__ 2>/dev/null || true
|
|
|
|
echo "Running PyInstaller..."
|
|
python -m PyInstaller trulymem_entry.py \
|
|
--clean \
|
|
--onefile \
|
|
--console \
|
|
--name TrulyMEM \
|
|
--icon "pic/TrulyMEM.icns" \
|
|
--add-data "ui/styles:ui/styles" \
|
|
--add-data "core/prompts/templates:core/prompts/templates" \
|
|
--hidden-import textual \
|
|
--hidden-import textual.app \
|
|
--hidden-import textual.widgets \
|
|
--hidden-import textual.css \
|
|
--hidden-import openai \
|
|
--hidden-import openai._client \
|
|
--hidden-import neo4j \
|
|
--hidden-import sqlite3 \
|
|
--hidden-import core \
|
|
--hidden-import core.embedded_db \
|
|
--hidden-import core.graph_client \
|
|
--hidden-import core.tool_executor \
|
|
--hidden-import core.tool_limiter \
|
|
--hidden-import core.tools \
|
|
--hidden-import core.tools.memory_tools \
|
|
--hidden-import core.prompts \
|
|
--hidden-import core.prompts.prompt_manager \
|
|
--hidden-import ui \
|
|
--hidden-import ui.app \
|
|
--hidden-import ui.models \
|
|
--hidden-import ui.models.message \
|
|
--hidden-import ui.models.config \
|
|
--hidden-import ui.models.log_entry \
|
|
--hidden-import ui.widgets \
|
|
--hidden-import ui.handlers \
|
|
--hidden-import ui.services \
|
|
--hidden-import ui.services.config_manager \
|
|
--hidden-import ui.services.config_service \
|
|
--collect-all textual \
|
|
--noconfirm
|
|
|
|
echo "===== Build Complete ====="
|
|
echo "Binary: dist/TrulyMEM"
|
|
ls -la dist/
|
|
|
|
# 清理虚拟环境
|
|
echo "Cleaning up virtual environment..."
|
|
deactivate
|
|
rm -rf "$VENV_DIR"
|
|
|
|
echo "Build finished successfully!" |