Comenzando con Poetry
Crear proyecto
Archivo TOML
El archivo pyproject.toml
es el archivo de configuración principal.
En él se incluye la información de las dependencias,
las versiones de Python compatibles,
la información del autor y su contacto,
etc.
Lo habitual es dejar a Poetry crear este archivo mediante comandos.
Proyecto vacío
El comando new
permite crear un nuevo proyecto,
junto a algunos directorios:
Tras ejecutar este comando se abre un menú interactivo en consola para configurar las opciones del proyecto una por una, información del autor y de contacto, licencia del proyecto, etc. Es mejor que el directorio del proyecto no exista previamente para asegurar que Poetry cree todos los archivos y carpetas internos.
Este es el contenido generado:
directorio_proyecto
├── pyproject.toml
├── README.md
├── src
│ └── directorio_proyecto
│ └── __init__.py
└── tests
└── __init__.py
El directorio tests
está pensado para correr tests unitarios mediante paquetes como Pytest.
Poetry asume por default que el proyecto será dedicado al desarrollo de paquetes,
por eso crea un directorio con el mismo nombre de proyecto adentro de la carpeta src
.
Todos los archivos se crean vacíos, excepto el archivo pyproject.toml
Crear TOML
Para crear solamente el archivo pyproject.toml
dentro del directorio actual se usa el comando init
:
Tras ejecutar este comando
se abre el mismo menú interactivo que en el caso del comando new
.
Gestión de paquetes
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.
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:
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
:
Ejecución
Ejecución directa
El comando run
de Poetry permite ejecutar las rutinas del proyecto
al tiempo que carga las dependencias:
Activación y desactivación de entorno virtual
El entorno virtual se activa en Bash con la siguiente expresión:
de esta manera el intérprete de Python puede ser llamado directamente:
Por último,
se dispone del comando deactivate
para deshabilitar el entorno actual: