79 lines
1.9 KiB
Python
79 lines
1.9 KiB
Python
|
||
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
身体平衡评估系统 - 后端服务入口
|
||
独立运行的exe版本
|
||
"""
|
||
|
||
import os
|
||
import sys
|
||
import logging
|
||
from pathlib import Path
|
||
|
||
# 设置工作目录
|
||
if getattr(sys, 'frozen', False):
|
||
# 如果是打包后的exe
|
||
application_path = os.path.dirname(sys.executable)
|
||
else:
|
||
# 如果是开发环境
|
||
application_path = os.path.dirname(os.path.abspath(__file__))
|
||
|
||
os.chdir(application_path)
|
||
sys.path.insert(0, application_path)
|
||
|
||
# 创建必要的目录
|
||
os.makedirs('logs', exist_ok=True)
|
||
os.makedirs('data', exist_ok=True)
|
||
|
||
# 配置日志
|
||
logging.basicConfig(
|
||
level=logging.INFO,
|
||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||
handlers=[
|
||
logging.FileHandler('logs/backend.log', encoding='utf-8'),
|
||
logging.StreamHandler()
|
||
]
|
||
)
|
||
|
||
logger = logging.getLogger(__name__)
|
||
|
||
def main():
|
||
"""主函数"""
|
||
try:
|
||
logger.info("启动身体平衡评估系统后端服务...")
|
||
logger.info(f"工作目录: {os.getcwd()}")
|
||
|
||
# 导入并启动Flask应用
|
||
from app_minimal import app, socketio, init_app
|
||
|
||
# 初始化应用
|
||
init_app()
|
||
|
||
# 启动服务器
|
||
logger.info("后端服务器启动在 http://localhost:5000")
|
||
if socketio is not None:
|
||
socketio.run(
|
||
app,
|
||
host='0.0.0.0',
|
||
port=5000,
|
||
debug=False
|
||
)
|
||
else:
|
||
logger.info("使用基本Flask模式启动(无SocketIO)")
|
||
app.run(
|
||
host='0.0.0.0',
|
||
port=5000,
|
||
debug=False
|
||
)
|
||
|
||
except KeyboardInterrupt:
|
||
logger.info("用户中断,正在关闭服务器...")
|
||
except Exception as e:
|
||
logger.error(f"启动失败: {e}")
|
||
input("按回车键退出...")
|
||
sys.exit(1)
|
||
|
||
if __name__ == '__main__':
|
||
main()
|