59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
"""
|
||
|
|
WMS FastAPI 应用启动脚本
|
||
|
|
支持通过环境变量切换开发/生产环境
|
||
|
|
"""
|
||
|
|
import os
|
||
|
|
import sys
|
||
|
|
import uvicorn
|
||
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
# 添加项目根目录到Python路径
|
||
|
|
project_root = Path(__file__).parent
|
||
|
|
sys.path.insert(0, str(project_root))
|
||
|
|
|
||
|
|
|
||
|
|
def main():
|
||
|
|
"""主函数"""
|
||
|
|
# 获取环境变量,默认为开发环境
|
||
|
|
env = os.getenv("ENVIRONMENT", "development")
|
||
|
|
|
||
|
|
print(f"🔧 当前环境: {env}")
|
||
|
|
print(f"📁 项目根目录: {project_root}")
|
||
|
|
|
||
|
|
# 设置环境变量
|
||
|
|
os.environ["ENVIRONMENT"] = env
|
||
|
|
|
||
|
|
try:
|
||
|
|
from app.config.settings import settings
|
||
|
|
|
||
|
|
print(f"🚀 启动FastAPI应用...")
|
||
|
|
print(f"📦 应用名称: {settings.config.name}")
|
||
|
|
print(f"🌐 访问地址: http://{settings.config.host}:{settings.config.port}")
|
||
|
|
print(f"📚 API文档: http://{settings.config.host}:{settings.config.port}/docs")
|
||
|
|
|
||
|
|
# 根据环境设置不同的启动参数
|
||
|
|
if env == "development":
|
||
|
|
uvicorn.run(
|
||
|
|
"app.main:app",
|
||
|
|
host=settings.config.host,
|
||
|
|
port=settings.config.port,
|
||
|
|
reload=True,
|
||
|
|
log_level="debug"
|
||
|
|
)
|
||
|
|
else:
|
||
|
|
uvicorn.run(
|
||
|
|
"app.main:app",
|
||
|
|
host=settings.config.host,
|
||
|
|
port=settings.config.port,
|
||
|
|
reload=False,
|
||
|
|
workers=4
|
||
|
|
)
|
||
|
|
|
||
|
|
except Exception as e:
|
||
|
|
print(f"❌ 启动失败: {e}")
|
||
|
|
sys.exit(1)
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
main()
|