85 lines
2.4 KiB
Python
85 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
CAE Mesh Generator - Quick Start Script
|
|
快速启动脚本 - 自动检查环境并启动应用
|
|
"""
|
|
import sys
|
|
import os
|
|
import subprocess
|
|
from pathlib import Path
|
|
|
|
# 设置控制台编码为UTF-8
|
|
if sys.platform == "win32":
|
|
import locale
|
|
import codecs
|
|
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
|
|
sys.stderr = codecs.getwriter("utf-8")(sys.stderr.detach())
|
|
|
|
def check_python_version():
|
|
"""检查Python版本"""
|
|
version = sys.version_info
|
|
if version.major < 3 or (version.major == 3 and version.minor < 8):
|
|
print(f"❌ Python版本过低: {version.major}.{version.minor}")
|
|
print("需要Python 3.8或更高版本")
|
|
return False
|
|
print(f"✅ Python版本: {version.major}.{version.minor}.{version.micro}")
|
|
return True
|
|
|
|
def check_dependencies():
|
|
"""检查基本依赖"""
|
|
try:
|
|
import flask
|
|
print("✅ Flask已安装")
|
|
return True
|
|
except ImportError:
|
|
print("❌ Flask未安装")
|
|
print("正在安装依赖...")
|
|
try:
|
|
subprocess.check_call([sys.executable, '-m', 'pip', 'install', '-r', 'requirements.txt'])
|
|
print("✅ 依赖安装完成")
|
|
return True
|
|
except subprocess.CalledProcessError:
|
|
print("❌ 依赖安装失败")
|
|
return False
|
|
|
|
def main():
|
|
"""主函数"""
|
|
print("🚀 CAE网格生成助手 - 快速启动")
|
|
print("=" * 50)
|
|
|
|
# 检查Python版本
|
|
if not check_python_version():
|
|
return 1
|
|
|
|
# 检查依赖
|
|
if not check_dependencies():
|
|
return 1
|
|
|
|
# 启动应用
|
|
print("\n🌐 启动应用...")
|
|
try:
|
|
from app import create_app
|
|
app = create_app()
|
|
|
|
print("✅ 应用启动成功!")
|
|
print("📱 访问地址: http://localhost:5000")
|
|
print("⏹️ 按 Ctrl+C 停止应用")
|
|
print("-" * 50)
|
|
|
|
app.run(host='0.0.0.0', port=5000, debug=False)
|
|
|
|
except KeyboardInterrupt:
|
|
print("\n👋 应用已停止")
|
|
except Exception as e:
|
|
print(f"❌ 启动失败: {e}")
|
|
print("\n🔧 故障排除:")
|
|
print("1. 检查是否有其他程序占用5000端口")
|
|
print("2. 运行 'python scripts/deployment_check.py' 进行详细检查")
|
|
print("3. 查看README.md获取更多帮助")
|
|
return 1
|
|
|
|
return 0
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main()) |