Gestión de dependencias
Los paquetes y otras dependencias son gestionadas por Poetry mediante comandos específicos.
Agregado
Para agregar un nuevo paquete al proyecto
se usa el comando add
:
Este comando también:
- crea un entorno para el proyecto actual si aún no existe;
- instala el paquete en el entorno actual.
Poetry admite también el agregado de paquetes ubicados en el sistema de archivos en base a su ruta relativa:
poetry add ruta-pack-local/ # carpeta del paquete
poetry add ruta-pack-local/dist/pack-local-0.1.0.tar.gz # comprimido
poetry add ruta-pack-local/dist/pack-local-0.1.0.whl # 'wheel'
y también se pueden agregar dependencias remotas con repositorios Git, admitiendo la URL correspondiente en varios formatos:
poetry add git+https://github.com/autor/paquete-remoto.git # HTTPS
poetry add git+ssh://git@github.com/autor/paquete-remoto.git # SSH
Más detalles en la página oficial de Poetry.
Opción editable
Agregando la opción editable
a la incorporación de paquetes
se habilita el modo de desarrollo de dicho paquete.
Con este modo se consigue que los cambios
en el código fuente del paquete
se vean instantáenamente en el proyecto que lo incorpora
sin necesidad de reinstación.
Uso:
Ubicacion de entornos
A diferencia de VENV,
Poetry crea todos los entornos locales en una misma carpeta dedicada a tal fin.
Por ejemplo en Linux dicha carpeta suele ser:
CARPETA_USUARIO/.cache/pypoetry/virtualenv
Especificacion de versiones
Las versiones de cada paquete
se pueden asignar mediante el uso de restricciones
(constraints)
junto al comando add
,
los cuales se enumeran a continuación:
Simbolo | Significado | Ejemplo |
---|---|---|
^ |
Sólo actualizaciones menores y patches | n.x.x |
~ |
Sólo actualizaciones patch | n.m.x |
@ |
Version exacta | n.m.o |
Ejemplos de uso: definiendo versiones del paquete cosmético rich
:
poetry add rich^13.0 # versiones 13.0.0 a 14.0.0
poetry add rich~13.0 # versiones 13.0.0 a 13.1.0
poetry add rich@13.0.1 # sólo versión 13.1.0
Los cambios se verán reflejados en el archivo TOML. Por ejemplo, si se elige especificar sólo la versión mayor del paquete:
Entonces el rango se indicará en el archivopyproject.toml
entre paréntesis
bajo la sección [project]
:
Actualización
Se dispone del comando update
para actualizar los paquetes
de acuerdo a los rangos de versiones predefinidos en el proyecto.
Remoción
El paquete se elimina del proyecto con el comando remove
: