BioRAG / app.py
C2MV's picture
Upload app.py
6613451 verified
raw
history blame
4.11 kB
# 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()