File size: 4,112 Bytes
6613451 e43df9f de3a711 eaf89d5 6613451 de3a711 6613451 e43df9f de3a711 6613451 e43df9f 29fefec e43df9f de3a711 6613451 d3d8124 6613451 29fefec 6613451 30dcf91 1452a4c 30dcf91 9ee4000 30dcf91 eaf89d5 30dcf91 9ee4000 6613451 9ee4000 6613451 d3d8124 0a4b91b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# app.py (con verificaci贸n despu茅s de forzar)
import sys
from pathlib import Path
import os
import subprocess
import pkg_resources # Para verificar la versi贸n instalada
# --- CR脥TICO: L脥NEA PARA FORZAR LA VERSI脫N DE GRADIO Y GRADIO-CLIENT CORRECTA ---
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}"])
# Verificar la versi贸n instalada
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}")
# sys.exit(1) # Salir si la versi贸n no es la correcta, opcional
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)
# --- FIN DE L脥NEA CR脥TICA ---
# ... (resto de tu app.py, importando UI, interface, etc.) ...
# Aseg煤rate de que estas importaciones ocurran DESPU脡S del bloque de instalaci贸n.
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 # Usa la UI simplificada para esta prueba
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)
# Comentar la l贸gica del decorador dummy por ahora, ya que no es el error principal
# if decorators.was_real_spaces_gpu_imported():
# print("INFO (app.py): El decorador GPU de 'spaces' parece estar disponible.")
# @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.")
def main():
print("INFO (app.py): Creando la interfaz Gradio simplificada...")
# Usa la UI 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() |