BG5 commited on
Commit
66b6895
·
verified ·
1 Parent(s): b215301

Update api.txt

Browse files
Files changed (1) hide show
  1. api.txt +47 -0
api.txt CHANGED
@@ -18,6 +18,53 @@ from cryptography.fernet import Fernet
18
  from cryptography.hazmat.primitives import hashes
19
  from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
20
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  app = FastAPI()
22
 
23
  # 加密配置
 
18
  from cryptography.hazmat.primitives import hashes
19
  from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
20
 
21
+
22
+
23
+ # ==============================================================================
24
+ # 依赖检查与自动安装 (Dependency Check and Auto-Installation)
25
+ # ==============================================================================
26
+ import sys
27
+ import subprocess
28
+ import importlib.util
29
+
30
+ print("--- 正在检查并安装必要的依赖库 ---")
31
+
32
+ # 定义需要检查和安装的库列表
33
+ # 格式为 '库名': '导入时使用的模块名'
34
+ required_packages = {
35
+ 'fastapi': 'fastapi',
36
+ 'uvicorn': 'uvicorn',
37
+ 'httpx': 'httpx',
38
+ 'websockets': 'websockets',
39
+ 'loguru': 'loguru',
40
+ 'cryptography': 'cryptography',
41
+ }
42
+
43
+ def install_package(package_name):
44
+ """使用 pip 安装指定的库"""
45
+ try:
46
+ print(f"正在尝试安装 {package_name}...")
47
+ # 使用 sys.executable 确保使用当前 Python 解释器对应的 pip
48
+ subprocess.check_call([sys.executable, "-m", "pip", "install", package_name])
49
+ print(f"✅ 成功安装 {package_name}")
50
+ except subprocess.CalledProcessError as e:
51
+ print(f"❌ 安装 {package_name} 失败: {e}")
52
+ # 根据需要可以决定是否在安装失败时退出程序
53
+ # sys.exit(1)
54
+
55
+ # 遍历并检查每个库
56
+ for package_name, module_name in required_packages.items():
57
+ if importlib.util.find_spec(module_name) is None:
58
+ print(f"⚠️ 未找到库: {package_name}。")
59
+ install_package(package_name)
60
+ else:
61
+ print(f"✔️ 库 {package_name} 已安装。")
62
+
63
+ print("--- 所有依赖库均已准备就绪 ---")
64
+ print("\n" * 2)
65
+
66
+
67
+
68
  app = FastAPI()
69
 
70
  # 加密配置