#!/usr/bin/env python3 """ 依赖安装脚本 """ import subprocess import sys import os def run_command(command): """运行命令""" print(f"执行命令: {command}") result = subprocess.run(command, shell=True, capture_output=True, text=True) if result.returncode != 0: print(f"命令执行失败: {result.stderr}") return False print(f"命令执行成功: {result.stdout}") return True def install_dependencies(): """安装依赖""" print("🚀 开始安装Python依赖...") # 升级pip if not run_command(f"{sys.executable} -m pip install --upgrade pip"): print("❌ 升级pip失败") return False # 安装基础依赖 dependencies = [ "fastapi==0.104.1", "uvicorn[standard]==0.24.0", "sqlalchemy==2.0.23", "aiomysql==0.2.0", "python-jose[cryptography]==3.3.0", "passlib[bcrypt]==1.7.4", "pydantic==2.5.0", "pydantic-settings==2.1.0", "python-multipart==0.0.6", "python-dotenv==1.0.0", "email-validator==2.1.0", "httpx==0.25.2", "Pillow==10.1.0", "python-dateutil==2.8.2" ] for dep in dependencies: print(f"安装 {dep}...") if not run_command(f"{sys.executable} -m pip install {dep}"): print(f"❌ 安装 {dep} 失败") return False print("✅ 所有依赖安装成功!") return True def main(): """主函数""" print("=" * 50) print("SSO后端依赖安装脚本") print("=" * 50) if install_dependencies(): print("\n🎉 依赖安装完成!") print("\n下一步:") print("1. 配置数据库连接 (编辑 .env 文件)") print("2. 初始化数据库: python scripts/init_db.py") print("3. 启动服务: cd src && python -m app.main") else: print("\n❌ 依赖安装失败,请检查错误信息") sys.exit(1) if __name__ == "__main__": main()