-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathverify_setup.py
More file actions
120 lines (98 loc) · 3.19 KB
/
verify_setup.py
File metadata and controls
120 lines (98 loc) · 3.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
"""
环境验证脚本
验证项目设置是否正确
"""
import sys
import os
def check_python_version():
"""检查Python版本"""
version = sys.version_info
if version.major >= 3 and version.minor >= 8:
print(f"✅ Python版本: {version.major}.{version.minor}.{version.micro}")
return True
else:
print(f"❌ Python版本过低: {version.major}.{version.minor}.{version.micro} (需要 >= 3.8)")
return False
def check_virtual_env():
"""检查虚拟环境"""
if hasattr(sys, 'real_prefix') or (hasattr(sys, 'base_prefix') and sys.base_prefix != sys.prefix):
print("✅ 虚拟环境已激活")
return True
else:
print("⚠️ 建议使用虚拟环境")
return False
def check_dependencies():
"""检查依赖包"""
required_packages = [
'fastapi', 'uvicorn', 'pydantic', 'requests',
'langchain_core'
]
missing_packages = []
for package in required_packages:
try:
__import__(package)
print(f"✅ {package}")
except ImportError:
missing_packages.append(package)
print(f"❌ {package} 未安装")
if missing_packages:
print(f"\n💡 安装缺失的依赖:")
print(f" pip install {' '.join(missing_packages)}")
return False
return True
def check_project_structure():
"""检查项目结构"""
required_files = [
'main.py', 'config.py', 'requirements.txt',
'src/__init__.py', 'src/demo/__init__.py',
'src/demo/web_service.py', 'src/demo/diagnosis_core.py'
]
missing_files = []
for file_path in required_files:
if os.path.exists(file_path):
print(f"✅ {file_path}")
else:
missing_files.append(file_path)
print(f"❌ {file_path} 不存在")
return len(missing_files) == 0
def check_imports():
"""检查关键导入"""
try:
from main import create_app
from src.demo.web_service import router
from src.demo.diagnosis_core import DiagnosisService
print("✅ 关键模块导入成功")
return True
except ImportError as e:
print(f"❌ 模块导入失败: {e}")
return False
def main():
"""主验证函数"""
print("🔍 Auto DevOps 环境验证")
print("=" * 40)
checks = [
("Python版本", check_python_version),
("虚拟环境", check_virtual_env),
("依赖包", check_dependencies),
("项目结构", check_project_structure),
("模块导入", check_imports)
]
results = []
for name, check_func in checks:
print(f"\n📋 检查 {name}:")
result = check_func()
results.append(result)
print("\n" + "=" * 40)
passed = sum(results)
total = len(results)
if passed == total:
print(f"🎉 验证通过 ({passed}/{total})")
print("\n🚀 启动服务:")
print(" python main.py")
print("\n📚 访问API文档:")
print(" http://localhost:8002/docs")
else:
print(f"⚠️ 验证未完全通过 ({passed}/{total})")
print("请根据上述提示修复问题")
if __name__ == "__main__":
main()