Cheat Sheet de Python

Poetry

¿Qué es Poetry?

Una herramienta moderna para la gestión de dependencias, entornos virtuales y empaquetado de proyectos en Python. Su objetivo es hacerlo todo de forma fácil y predecible.

Filosofía de Poetry

Centraliza toda la configuración del proyecto en un solo archivo estándar: pyproject.toml.

Esto reemplaza a `Pipfile`, `requirements.txt`, `setup.py` y otros archivos de configuración.

Instalación

Se recomienda instalar Poetry de forma aislada para que no interfiera con otros paquetes de Python. El método oficial usa un script de instalación.

# Comando recomendado desde la web oficial
curl -sSL https://install.python-poetry.org | python3 -

Iniciar un Nuevo Proyecto: poetry new

Crea una estructura de proyecto estándar y un archivo `pyproject.toml` listo para usar.

poetry new mi-proyecto-genial

Iniciar en un Proyecto Existente: poetry init

Si ya tienes una carpeta de proyecto, este comando te guiará para crear el archivo `pyproject.toml`.

cd mi-proyecto-existente
poetry init

El Archivo pyproject.toml

El archivo de configuración central. Define la información del proyecto y sus dependencias.

[tool.poetry]
name = "mi-proyecto-genial"
version = "0.1.0"
description = ""
authors = ["Tu Nombre "]

[tool.poetry.dependencies]
python = "^3.11"
requests = "^2.31.0"

[tool.poetry.group.dev.dependencies]
pytest = "^8.0.0"

Añadir Dependencias: poetry add

Instala un paquete y lo añade automáticamente a `pyproject.toml`. También actualiza el lockfile.

# Añade una dependencia de producción
poetry add requests

# Añade una dependencia de desarrollo
poetry add pytest --group dev

El Lockfile: poetry.lock

Al igual que Pipenv, Poetry crea un archivo `poetry.lock` que contiene las versiones exactas de todos los paquetes. Esto garantiza builds 100% reproducibles.

Instalar Dependencias: poetry install

Lee el archivo `poetry.lock` (si existe) e instala las versiones exactas de las dependencias. Si no existe `poetry.lock`, lo crea a partir de `pyproject.toml`.

# En un proyecto nuevo
poetry install

Gestión del Entorno Virtual

Poetry gestiona los entornos virtuales automáticamente. Por defecto, los crea en una carpeta centralizada, no dentro de tu proyecto.

Ejecutar Comandos: poetry run

Ejecuta un comando dentro del entorno virtual gestionado por Poetry.

poetry run python mi_script.py
poetry run pytest

Activar el Entorno: poetry shell

Inicia una nueva shell dentro del entorno virtual del proyecto.

poetry shell

Actualizar Paquetes: poetry update

Busca nuevas versiones de los paquetes (respetando las restricciones de `pyproject.toml`) y actualiza el `poetry.lock`.

# Actualiza todos los paquetes
poetry update

# Actualiza solo un paquete
poetry update requests

Eliminar Paquetes: poetry remove

Desinstala un paquete y lo elimina de tus archivos de configuración.

poetry remove requests

Empaquetado: poetry build

Una de las grandes ventajas de Poetry. Este comando crea los archivos de distribución (`.tar.gz` y `.whl`) de tu proyecto, listos para ser publicados.

poetry build

Publicación: poetry publish

Si has configurado tus credenciales de PyPI, este comando empaqueta Y sube tu librería directamente a PyPI.

poetry publish

Conclusión

Poetry es una herramienta moderna y completa que gestiona todo el ciclo de vida de un proyecto de Python, desde las dependencias hasta la publicación, usando el estándar `pyproject.toml`.