install_deploy_deps.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/usr/bin/env python3
  2. """
  3. 安装自动部署功能所需的依赖
  4. 运行方式:
  5. python scripts/install_deploy_deps.py
  6. """
  7. import subprocess
  8. import sys
  9. def install_package(package_name: str) -> bool:
  10. """安装 Python 包"""
  11. try:
  12. print(f"正在安装 {package_name}...")
  13. subprocess.check_call(
  14. [sys.executable, "-m", "pip", "install", package_name],
  15. stdout=subprocess.PIPE,
  16. stderr=subprocess.PIPE,
  17. )
  18. print(f"✅ {package_name} 安装成功")
  19. return True
  20. except subprocess.CalledProcessError as e:
  21. print(f"❌ {package_name} 安装失败: {e}")
  22. return False
  23. def check_package(package_name: str) -> bool:
  24. """检查包是否已安装"""
  25. try:
  26. __import__(package_name)
  27. print(f"✅ {package_name} 已安装")
  28. return True
  29. except ImportError:
  30. print(f"⚠️ {package_name} 未安装")
  31. return False
  32. def main():
  33. """主函数"""
  34. print("=" * 60)
  35. print("🔧 自动部署功能依赖安装工具")
  36. print("=" * 60)
  37. print()
  38. # 检查并安装 paramiko
  39. print("检查 paramiko 库...")
  40. if not check_package("paramiko"):
  41. if install_package("paramiko"):
  42. print("✅ paramiko 安装完成")
  43. else:
  44. print("❌ paramiko 安装失败,请手动安装: pip install paramiko")
  45. sys.exit(1)
  46. print()
  47. print("=" * 60)
  48. print("✅ 所有依赖已安装完成!")
  49. print("=" * 60)
  50. print()
  51. print("现在可以使用自动部署功能了:")
  52. print(" python scripts/auto_execute_tasks.py --test-connection")
  53. print()
  54. if __name__ == "__main__":
  55. main()