150 lines
3.8 KiB
Bash
Executable File
150 lines
3.8 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# A股AI分析Agent系统 - 快速安装脚本
|
||
|
||
echo "================================"
|
||
echo "A股AI分析Agent系统 - 安装脚本"
|
||
echo "================================"
|
||
echo ""
|
||
|
||
# 检查Python版本
|
||
echo "检查Python版本..."
|
||
|
||
# 尝试找到合适的Python版本
|
||
PYTHON_CMD=""
|
||
|
||
for cmd in python3.11 python3.12 python3.10 python3 python; do
|
||
if command -v $cmd &> /dev/null; then
|
||
version=$($cmd --version 2>&1 | awk '{print $2}')
|
||
major=$(echo $version | cut -d. -f1)
|
||
minor=$(echo $version | cut -d. -f2)
|
||
|
||
if [ "$major" = "3" ] && [ "$minor" -ge "10" ] && [ "$minor" -le "12" ]; then
|
||
PYTHON_CMD=$cmd
|
||
echo "✓ 找到合适的Python版本: $version ($cmd)"
|
||
break
|
||
fi
|
||
fi
|
||
done
|
||
|
||
if [ -z "$PYTHON_CMD" ]; then
|
||
echo "❌ 错误: 未找到合适的Python版本"
|
||
echo ""
|
||
echo "请安装 Python 3.11 或 3.12:"
|
||
echo " macOS: brew install python@3.11"
|
||
echo " Ubuntu: sudo apt install python3.11"
|
||
echo " Windows: 从 python.org 下载安装"
|
||
echo ""
|
||
exit 1
|
||
fi
|
||
|
||
# 检查是否在项目根目录
|
||
if [ ! -f "README.md" ] || [ ! -d "backend" ]; then
|
||
echo "❌ 错误: 请在项目根目录运行此脚本"
|
||
echo "当前目录: $(pwd)"
|
||
exit 1
|
||
fi
|
||
|
||
# 创建虚拟环境
|
||
echo ""
|
||
echo "创建虚拟环境..."
|
||
cd backend
|
||
|
||
if [ -d "venv" ]; then
|
||
echo "⚠ 虚拟环境已存在,将删除并重新创建"
|
||
rm -rf venv
|
||
fi
|
||
|
||
$PYTHON_CMD -m venv venv
|
||
|
||
if [ $? -ne 0 ]; then
|
||
echo "❌ 创建虚拟环境失败"
|
||
exit 1
|
||
fi
|
||
|
||
echo "✓ 虚拟环境创建成功"
|
||
|
||
# 激活虚拟环境
|
||
echo ""
|
||
echo "激活虚拟环境..."
|
||
source venv/bin/activate
|
||
|
||
# 升级pip
|
||
echo ""
|
||
echo "升级pip..."
|
||
pip install --upgrade pip setuptools wheel
|
||
|
||
# 安装依赖
|
||
echo ""
|
||
echo "安装依赖包..."
|
||
echo "这可能需要几分钟时间..."
|
||
echo ""
|
||
|
||
pip install -r requirements.txt
|
||
|
||
if [ $? -ne 0 ]; then
|
||
echo ""
|
||
echo "❌ 依赖安装失败"
|
||
echo ""
|
||
echo "可能的原因:"
|
||
echo "1. Python版本不兼容(推荐使用3.11或3.12)"
|
||
echo "2. 网络问题"
|
||
echo "3. 缺少编译工具"
|
||
echo ""
|
||
echo "解决方案请查看: docs/INSTALL_GUIDE.md"
|
||
exit 1
|
||
fi
|
||
|
||
echo ""
|
||
echo "✓ 依赖安装成功"
|
||
|
||
# 检查配置文件
|
||
echo ""
|
||
echo "检查配置文件..."
|
||
cd ..
|
||
|
||
if [ ! -f ".env" ]; then
|
||
echo "⚠ 未找到.env文件,从模板创建..."
|
||
cp .env.example .env
|
||
echo "✓ 已创建.env文件"
|
||
echo ""
|
||
echo "⚠ 重要: 请编辑.env文件,填写以下配置:"
|
||
echo " - TUSHARE_TOKEN (从 https://tushare.pro/ 获取)"
|
||
echo " - ZHIPUAI_API_KEY (从 https://open.bigmodel.cn/ 获取)"
|
||
echo ""
|
||
else
|
||
echo "✓ .env文件已存在"
|
||
fi
|
||
|
||
# 验证安装
|
||
echo ""
|
||
echo "验证安装..."
|
||
cd backend
|
||
source venv/bin/activate
|
||
|
||
python -c "import fastapi; print('✓ FastAPI:', fastapi.__version__)" 2>/dev/null || echo "❌ FastAPI 安装失败"
|
||
python -c "import pandas; print('✓ Pandas:', pandas.__version__)" 2>/dev/null || echo "❌ Pandas 安装失败"
|
||
python -c "import numpy; print('✓ NumPy:', numpy.__version__)" 2>/dev/null || echo "❌ NumPy 安装失败"
|
||
python -c "import tushare; print('✓ Tushare:', tushare.__version__)" 2>/dev/null || echo "❌ Tushare 安装失败"
|
||
|
||
echo ""
|
||
echo "================================"
|
||
echo "安装完成!"
|
||
echo "================================"
|
||
echo ""
|
||
echo "下一步:"
|
||
echo "1. 编辑 .env 文件,填写API密钥"
|
||
echo "2. 启动应用:"
|
||
echo " cd backend"
|
||
echo " source venv/bin/activate"
|
||
echo " python -m app.main"
|
||
echo ""
|
||
echo "3. 访问系统:"
|
||
echo " 前端界面: http://localhost:8000"
|
||
echo " API文档: http://localhost:8000/docs"
|
||
echo ""
|
||
echo "如有问题,请查看:"
|
||
echo " - 安装指南: docs/INSTALL_GUIDE.md"
|
||
echo " - 用户手册: docs/USER_GUIDE.md"
|
||
echo ""
|