89 lines
2.6 KiB
Python
89 lines
2.6 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Launcher para Calculadora MAV - Versión PySide6 con MathJax
|
|
"""
|
|
import sys
|
|
import os
|
|
import subprocess
|
|
from pathlib import Path
|
|
import importlib.util
|
|
import logging
|
|
|
|
def check_dependencies():
|
|
"""Verifica que todas las dependencias estén instaladas"""
|
|
required_modules = [
|
|
'PySide6',
|
|
'sympy',
|
|
'numpy',
|
|
'matplotlib'
|
|
]
|
|
|
|
missing = []
|
|
for module in required_modules:
|
|
try:
|
|
__import__(module)
|
|
except ImportError:
|
|
missing.append(module)
|
|
|
|
if missing:
|
|
print("❌ Faltan las siguientes dependencias:")
|
|
for module in missing:
|
|
print(f" - {module}")
|
|
print("\n💡 Para instalar las dependencias, ejecuta:")
|
|
print(" pip install -r requirements.txt")
|
|
return False
|
|
|
|
print("✅ Todas las dependencias están instaladas")
|
|
return True
|
|
|
|
def check_pyside6_webengine():
|
|
"""Verifica si PySide6 WebEngine está disponible"""
|
|
try:
|
|
from PySide6.QtWebEngineWidgets import QWebEngineView
|
|
print("✅ PySide6 WebEngine disponible para MathJax")
|
|
return True
|
|
except ImportError:
|
|
print("⚠️ PySide6 WebEngine no disponible")
|
|
print(" Instalando QtWebEngine...")
|
|
try:
|
|
subprocess.run([sys.executable, '-m', 'pip', 'install', 'PySide6-WebEngine'],
|
|
check=True, capture_output=True)
|
|
print("✅ PySide6 WebEngine instalado correctamente")
|
|
return True
|
|
except subprocess.CalledProcessError:
|
|
print("❌ No se pudo instalar PySide6 WebEngine")
|
|
return False
|
|
|
|
def main():
|
|
"""Función principal del launcher"""
|
|
print("🚀 Iniciando Calculadora MAV - Diseño Minimalista 3 Paneles")
|
|
print("=" * 60)
|
|
|
|
# Verificar dependencias
|
|
if not check_dependencies():
|
|
sys.exit(1)
|
|
|
|
# Verificar WebEngine
|
|
if not check_pyside6_webengine():
|
|
print("⚠️ Continuando sin WebEngine (funcionalidad limitada)")
|
|
|
|
print("\n🎯 Iniciando aplicación...")
|
|
|
|
try:
|
|
# Importar y ejecutar la aplicación
|
|
from main_calc_app_pyside6 import main as run_app
|
|
run_app()
|
|
|
|
except ImportError as e:
|
|
print(f"❌ Error de importación: {e}")
|
|
print(" Verifica que todos los archivos del proyecto estén presentes")
|
|
sys.exit(1)
|
|
|
|
except Exception as e:
|
|
print(f"❌ Error inesperado: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
sys.exit(1)
|
|
|
|
if __name__ == "__main__":
|
|
main() |