check_env_simple.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. """
  2. 检查环境依赖 - 简化版
  3. """
  4. import sys
  5. def check_package(package_name, min_version=None):
  6. """检查包是否安装及版本"""
  7. try:
  8. import importlib
  9. module = importlib.import_module(package_name)
  10. if hasattr(module, "__version__"):
  11. installed_version = module.__version__
  12. status = f"{package_name}: {installed_version}"
  13. else:
  14. status = f"{package_name}: 已安装"
  15. print(f"[OK] {status}")
  16. return True
  17. except ImportError:
  18. print(f"[MISSING] {package_name}")
  19. return False
  20. def check_cuda():
  21. """检查 CUDA 是否可用"""
  22. try:
  23. import torch
  24. if torch.cuda.is_available():
  25. print(f"[OK] CUDA: 可用 ({torch.cuda.device_count()} 个 GPU)")
  26. for i in range(torch.cuda.device_count()):
  27. print(f" GPU {i}: {torch.cuda.get_device_name(i)}")
  28. return True
  29. else:
  30. print(f"[WARN] CUDA: 不可用 (将使用 CPU 训练)")
  31. return False
  32. except ImportError:
  33. print(f"[MISSING] PyTorch")
  34. return False
  35. def main():
  36. print("=" * 60)
  37. print("FineTuneX 环境检查")
  38. print("=" * 60)
  39. print()
  40. required_packages = [
  41. "torch",
  42. "transformers",
  43. "datasets",
  44. "accelerate",
  45. "peft",
  46. "bitsandbytes",
  47. "trl",
  48. "fastapi",
  49. "uvicorn",
  50. "pydantic",
  51. ]
  52. all_ok = True
  53. print("检查 Python 包:")
  54. print("-" * 60)
  55. for package in required_packages:
  56. if not check_package(package):
  57. all_ok = False
  58. print()
  59. print("检查 CUDA:")
  60. print("-" * 60)
  61. if not check_cuda():
  62. print("提示:CPU 训练速度较慢,建议使用 GPU")
  63. print()
  64. print("=" * 60)
  65. if all_ok:
  66. print("[OK] 所有核心依赖已安装!")
  67. else:
  68. print("[ERROR] 部分依赖缺失")
  69. print("请运行:pip install -r requirements.txt")
  70. print("=" * 60)
  71. return 0 if all_ok else 1
  72. if __name__ == "__main__":
  73. sys.exit(main())