# app.py import sys from pathlib import Path CURRENT_DIR = Path(__file__).parent if str(CURRENT_DIR) not in sys.path: sys.path.insert(0, str(CURRENT_DIR)) try: import decorators # Importa tu archivo decorators.py from UI import create_interface import interface as app_interface_module except ImportError as e: print(f"Error crítico de importación en app.py: {e}. Asegúrate de que todos los archivos .py estén en el mismo directorio o en PYTHONPATH.") sys.exit(1) if decorators.was_real_spaces_gpu_imported(): # Usa la función de decorators.py print("INFO (app.py): El decorador GPU de 'spaces' parece estar disponible.") print("INFO (app.py): Se definirá una función dummy decorada para satisfacer el chequeo de Gradio si es necesario.") @decorators.gpu_decorator(duration=1) def _app_py_dummy_gpu_function_for_gradio_startup(): pass else: print("INFO (app.py): El decorador GPU real de 'spaces' no fue importado. No se necesita función dummy para GPU.") def main(): print("INFO (app.py): Creando la interfaz Gradio...") demo_instance = create_interface(process_function_for_button=app_interface_module.process_and_plot) print("INFO (app.py): Lanzando la interfaz Gradio localmente...") # Si el error de localhost persiste, prueba con share=True # Esto es más probable si estás en un entorno contenedorizado incluso para "local" try: demo_instance.launch() except ValueError as ve: if "shareable link must be created" in str(ve): print("ADVERTENCIA (app.py): Falló el lanzamiento local directo, intentando con share=True...") demo_instance.launch(share=True) else: raise ve if __name__ == "__main__": main()