AnsysLink/scripts/run_app.py

90 lines
2.4 KiB
Python

#!/usr/bin/env python3
"""
CAE Mesh Generator Application Launcher
"""
import os
import sys
from pathlib import Path
def check_dependencies():
"""Check if required dependencies are available"""
required_packages = [
'flask',
'werkzeug'
]
missing_packages = []
for package in required_packages:
try:
__import__(package)
except ImportError:
missing_packages.append(package)
if missing_packages:
print(f"Missing required packages: {', '.join(missing_packages)}")
print("Please install them using: pip install -r requirements.txt")
return False
return True
def setup_directories():
"""Create necessary directories if they don't exist"""
directories = [
'uploads',
'results',
'temp',
'static/css',
'static/js',
'templates'
]
for directory in directories:
Path(directory).mkdir(parents=True, exist_ok=True)
print(f"✓ Directory '{directory}' ready")
def main():
"""Main application launcher"""
print("=" * 50)
print("CAE Mesh Generator - Starting Application")
print("=" * 50)
# Check dependencies
print("\n1. Checking dependencies...")
if not check_dependencies():
sys.exit(1)
print("✓ All dependencies available")
# Setup directories
print("\n2. Setting up directories...")
setup_directories()
# Check if ANSYS is available (optional)
print("\n3. Checking ANSYS availability...")
try:
import ansys.mechanical.core as mech
print("✓ ANSYS Mechanical available")
except ImportError:
print("⚠ ANSYS Mechanical not available - running in demo mode")
# Start Flask application
print("\n4. Starting Flask application...")
print("Application will be available at: http://localhost:5000")
print("Press Ctrl+C to stop the application")
print("-" * 50)
try:
# 添加项目根目录到Python路径
project_root = Path(__file__).parent.parent
sys.path.insert(0, str(project_root))
from app import create_app
app = create_app()
app.run(host='0.0.0.0', port=5000, debug=True)
except KeyboardInterrupt:
print("\n\nApplication stopped by user")
except Exception as e:
print(f"\nError starting application: {e}")
sys.exit(1)
if __name__ == '__main__':
main()