install_deps.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/usr/bin/env python3
  2. """
  3. 依赖安装脚本
  4. """
  5. import subprocess
  6. import sys
  7. import os
  8. def run_command(command):
  9. """运行命令"""
  10. print(f"执行命令: {command}")
  11. result = subprocess.run(command, shell=True, capture_output=True, text=True)
  12. if result.returncode != 0:
  13. print(f"命令执行失败: {result.stderr}")
  14. return False
  15. print(f"命令执行成功: {result.stdout}")
  16. return True
  17. def install_dependencies():
  18. """安装依赖"""
  19. print("🚀 开始安装Python依赖...")
  20. # 升级pip
  21. if not run_command(f"{sys.executable} -m pip install --upgrade pip"):
  22. print("❌ 升级pip失败")
  23. return False
  24. # 安装基础依赖
  25. dependencies = [
  26. "fastapi==0.104.1",
  27. "uvicorn[standard]==0.24.0",
  28. "sqlalchemy==2.0.23",
  29. "aiomysql==0.2.0",
  30. "python-jose[cryptography]==3.3.0",
  31. "passlib[bcrypt]==1.7.4",
  32. "pydantic==2.5.0",
  33. "pydantic-settings==2.1.0",
  34. "python-multipart==0.0.6",
  35. "python-dotenv==1.0.0",
  36. "email-validator==2.1.0",
  37. "httpx==0.25.2",
  38. "Pillow==10.1.0",
  39. "python-dateutil==2.8.2"
  40. ]
  41. for dep in dependencies:
  42. print(f"安装 {dep}...")
  43. if not run_command(f"{sys.executable} -m pip install {dep}"):
  44. print(f"❌ 安装 {dep} 失败")
  45. return False
  46. print("✅ 所有依赖安装成功!")
  47. return True
  48. def main():
  49. """主函数"""
  50. print("=" * 50)
  51. print("SSO后端依赖安装脚本")
  52. print("=" * 50)
  53. if install_dependencies():
  54. print("\n🎉 依赖安装完成!")
  55. print("\n下一步:")
  56. print("1. 配置数据库连接 (编辑 .env 文件)")
  57. print("2. 初始化数据库: python scripts/init_db.py")
  58. print("3. 启动服务: cd src && python -m app.main")
  59. else:
  60. print("\n❌ 依赖安装失败,请检查错误信息")
  61. sys.exit(1)
  62. if __name__ == "__main__":
  63. main()