diff --git a/install.sh b/install.sh index cc0df53..55745a7 100644 --- a/install.sh +++ b/install.sh @@ -140,10 +140,29 @@ ok "Base de datos '${DB_NAME}' lista con usuario '${DB_USER}'" # ── 6. Entorno virtual Python + dependencias ───────────────────────────────── step "Creando entorno virtual Python e instalando dependencias..." + +# Eliminar venv roto si existe de una instalación anterior fallida +if [[ -d "$VENV_DIR" ]]; then + warn "Venv previo detectado — eliminando para recrear limpio..." + rm -rf "$VENV_DIR" +fi + +PY_VERSION=$($PYTHON_BIN -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")') +ok "Versión de Python: $PY_VERSION" + $PYTHON_BIN -m venv "$VENV_DIR" > /dev/null 2>&1 -"$VENV_DIR/bin/pip" install --upgrade pip --quiet +"$VENV_DIR/bin/pip" install --upgrade pip setuptools wheel --quiet "$VENV_DIR/bin/pip" install gunicorn --quiet -"$VENV_DIR/bin/pip" install -r "$APP_DIR/requirements.txt" --quiet + +# Instalar dependencias — con fallback para Python 3.13+ donde algunos paquetes +# requieren --no-build-isolation por incompatibilidades con setuptools nuevo +if "$VENV_DIR/bin/pip" install -r "$APP_DIR/requirements.txt" --quiet 2>/dev/null; then + ok "Dependencias instaladas correctamente" +else + warn "Instalación estándar falló — reintentando con --no-build-isolation..." + "$VENV_DIR/bin/pip" install -r "$APP_DIR/requirements.txt" --no-build-isolation --quiet + ok "Dependencias instaladas (modo compatibilidad)" +fi ok "Virtualenv listo con todas las dependencias + Gunicorn" # ── 7. Inicializar base de datos ────────────────────────────────────────────── diff --git a/requirements.txt b/requirements.txt index 17f7200..4af6ad2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ python-dotenv==1.0.0 requests==2.31.0 bleach==6.1.0 python-dateutil==2.8.2 -Pillow==10.1.0 +Pillow>=10.4.0 email_validator>=2.0.0 psycopg2-binary==2.9.9 Babel==2.14.0