VWED_server/packaging/main_with_config.py
2025-09-09 10:41:27 +08:00

69 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
带配置加载的主程序入口
在原有app.py基础上添加启动时配置加载功能
"""
import sys
import os
from pathlib import Path
# 添加项目根目录到Python路径
if getattr(sys, 'frozen', False):
# 打包后的环境
project_root = Path(sys.executable).parent
else:
# 开发环境
project_root = Path(__file__).parent.parent
sys.path.insert(0, str(project_root))
# 导入配置加载器
try:
from packaging.config_tool.startup_loader import load_startup_config, ensure_config_exists
# 确保配置文件存在
ensure_config_exists()
# 加载配置
load_startup_config()
print("配置加载完成")
except ImportError as e:
print(f"警告: 无法导入配置加载器: {e}")
except Exception as e:
print(f"警告: 配置加载失败: {e}")
# 现在导入并运行原始的app.py
try:
from app import *
# 如果是直接运行此脚本,则启动服务
if __name__ == "__main__":
import time
port = 8000
# 导入日志工具
from utils.logger import get_logger
logger = get_logger("main")
logger.info(f"服务器配置 - Host: 0.0.0.0, Port: {port}, Workers: {settings.SERVER_WORKERS}, Reload: {settings.SERVER_RELOAD}")
# 启动服务器
import uvicorn
uvicorn.run(
"app:app",
host="0.0.0.0",
port=port,
reload=settings.SERVER_RELOAD,
workers=settings.SERVER_WORKERS
)
except ImportError as e:
print(f"错误: 无法导入主程序: {e}")
sys.exit(1)
except Exception as e:
print(f"错误: 程序启动失败: {e}")
sys.exit(1)