|
|
|
import sys |
|
from pathlib import Path |
|
import os |
|
import subprocess |
|
import pkg_resources |
|
|
|
|
|
print("INFO (app.py): Intentando forzar la instalaci贸n de Gradio 4.29.0 y gradio-client 0.16.1...") |
|
GRADIO_TARGET_VERSION = "4.29.0" |
|
GRADIO_CLIENT_TARGET_VERSION = "0.16.1" |
|
try: |
|
subprocess.check_call([sys.executable, "-m", "pip", "uninstall", "-y", "gradio", "gradio-client"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) |
|
print(f"INFO (app.py): Intentando instalar gradio=={GRADIO_TARGET_VERSION} y gradio-client=={GRADIO_CLIENT_TARGET_VERSION}...") |
|
subprocess.check_call([sys.executable, "-m", "pip", "install", f"gradio=={GRADIO_TARGET_VERSION}", f"gradio-client=={GRADIO_CLIENT_TARGET_VERSION}"]) |
|
|
|
|
|
installed_gradio_version = pkg_resources.get_distribution("gradio").version |
|
installed_client_version = pkg_resources.get_distribution("gradio_client").version |
|
|
|
print(f"INFO (app.py): Versi贸n de Gradio instalada: {installed_gradio_version}") |
|
print(f"INFO (app.py): Versi贸n de Gradio-Client instalada: {installed_client_version}") |
|
|
|
if installed_gradio_version != GRADIO_TARGET_VERSION or installed_client_version != GRADIO_CLIENT_TARGET_VERSION: |
|
print(f"ERROR (app.py): No se pudo forzar la versi贸n correcta de Gradio/Gradio-Client.") |
|
print(f"Se esperaba Gradio {GRADIO_TARGET_VERSION}, se obtuvo {installed_gradio_version}") |
|
print(f"Se esperaba Gradio-Client {GRADIO_CLIENT_TARGET_VERSION}, se obtuvo {installed_client_version}") |
|
|
|
else: |
|
print(f"INFO (app.py): Gradio {GRADIO_TARGET_VERSION} y Gradio-Client {GRADIO_CLIENT_TARGET_VERSION} instalados y verificados correctamente.") |
|
|
|
except subprocess.CalledProcessError as e: |
|
print(f"ERROR (app.py): Fallo al forzar la instalaci贸n de Gradio: {e}") |
|
sys.exit(1) |
|
except pkg_resources.DistributionNotFound: |
|
print("ERROR (app.py): Gradio o Gradio-Client no se encontr贸 despu茅s del intento de instalaci贸n.") |
|
sys.exit(1) |
|
|
|
|
|
|
|
|
|
CURRENT_DIR = Path(__file__).parent |
|
if str(CURRENT_DIR) not in sys.path: |
|
sys.path.insert(0, str(CURRENT_DIR)) |
|
|
|
try: |
|
import decorators |
|
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}.") |
|
sys.exit(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def main(): |
|
print("INFO (app.py): Creando la interfaz Gradio simplificada...") |
|
|
|
demo_instance = create_interface(process_function_for_button=None) |
|
|
|
print("INFO (app.py): Lanzando la interfaz Gradio localmente...") |
|
try: |
|
demo_instance.launch(debug=True) |
|
except ValueError as ve: |
|
if "shareable link must be created" in str(ve).lower() or "localhost is not accessible" in str(ve).lower(): |
|
print("ADVERTENCIA (app.py): Fall贸 el lanzamiento local directo, intentando con share=True...") |
|
demo_instance.launch(share=True, debug=True) |
|
else: |
|
print(f"Error inesperado de ValueError durante launch(): {ve}") |
|
raise ve |
|
except Exception as e_launch: |
|
print(f"Error inesperado durante demo.launch(): {e_launch}") |
|
raise e_launch |
|
|
|
if __name__ == "__main__": |
|
main() |