Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Entornos y dependencias

5 tareas · 35 min · Principiante

Un script de apoyo no vive solo: depende de bibliotecas, de sus versiones y del lugar donde se instalan. En Curtiembres Río Seco el resumen semanal funciona en el portátil de quien lo escribió y de otra manera en el servidor de apoyo. Lees el archivo de dependencias, la lista de paquetes instalados en cada sitio y lo publicado en los dos índices de paquetes. Aprendes a ver qué versiones están fijadas y cuáles no, dónde puede colarse un paquete que no es el que se esperaba y qué hace reproducible un entorno.

0 de 5 · 0%

Objetivo de la sala

Un script de apoyo no vive solo: depende de bibliotecas, de sus versiones y del lugar donde se instalan. En Curtiembres Río Seco el resumen semanal funciona en el portátil de quien lo escribió y de otra manera en el servidor de apoyo. Lees el archivo de dependencias, la lista de paquetes instalados en cada sitio y lo publicado en los dos índices de paquetes. Aprendes a ver qué versiones están fijadas y cuáles no, dónde puede colarse un paquete que no es el que se esperaba y qué hace reproducible un entorno.

Un archivo de dependencias lista los paquetes que el proyecto necesita. Cada línea puede ser solo el nombre, un rango como >=7 o una versión exacta con ==. Sin versión exacta, quien instale hoy y quien instale dentro de seis meses pueden recibir versiones distintas del mismo paquete, y el script no hará lo mismo.

Abre /proyecto/requirements.txt. Las líneas que empiezan por dos guiones no son paquetes: son opciones de instalación.

Responde para continuar

Escribe cuántos paquetes del archivo no tienen una versión exacta fijada.

Ver pista de ayuda

Cuenta las líneas de paquete en las que no aparece el signo de versión exacta; deja fuera la línea de opciones.

Además del índice público, una empresa puede tener un índice interno con sus propios paquetes. Para que pip busque en los dos, se añade una opción de índice adicional. Es cómodo, y trae un riesgo conocido: pip no sabe cuál de los dos es «el bueno»; compara las versiones que encuentra y puede escoger la más alta, venga de donde venga.

Si un nombre interno existe también en el índice público, publicado por otra persona, el paquete que se instale depende de los números de versión. Es una forma de que entre código ajeno en un servidor que lo ejecutará con permisos de la empresa.

Abre /proyecto/paquetes_indices.txt.

Responde para continuar

Escribe el nombre del paquete que existe en el índice interno y también en el público.

Ver pista de ayuda

Compara los dos bloques del archivo y busca el nombre que se repite.

En el archivo de dependencias de la carpeta, ese paquete aparece sin versión y hay una opción de índice adicional. Con esa combinación, ninguna regla impide que pip prefiera la versión publicada fuera.

No es una acusación contra nadie: es una situación de la que hay que dejar evidencia, comprobar qué quedó instalado en el servidor y cerrarla.

Responde para continuar

¿Por qué es un riesgo que el paquete repetido en los dos índices esté sin versión fijada y con el índice adicional activo?

pip freeze imprime los paquetes instalados con su versión exacta: es la fotografía del entorno. Comparar la de dos máquinas es la forma más rápida de explicar por qué un script se comporta diferente en cada una. Casi todo coincidirá, y la diferencia buscada suele ser una sola línea.

Abre freeze_portatil.txt y freeze_servidor.txt y compáralas línea a línea.

Responde para continuar

Escribe el nombre del paquete cuya versión instalada difiere entre el portátil y el servidor.

Ver pista de ayuda

Las dos listas están en el mismo orden; avanza línea a línea hasta que dos versiones no coincidan.

Un entorno reproducible es el que se puede reconstruir igual en otra máquina. Se logra con tres hábitos que se complementan: un entorno virtual por proyecto, para no mezclar paquetes con los del sistema; versiones exactas, para que todos reciban lo mismo; y una comprobación de que lo instalado coincide con lo declarado.

Instalar todo en el Python del sistema, como se hace en el servidor del ejemplo, es el punto de partida contrario: un proyecto puede romper a otro y nadie sabe qué paquete proviene de qué.

Responde para continuar

¿Qué conjunto de medidas deja el proyecto del servidor de apoyo en mejor estado?

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad