69 lines
1.7 KiB
Python
69 lines
1.7 KiB
Python
#!/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) |