
Uno de los procesos clave en el desarrollo de software es la distribución de binarios o paquetes. Este paso facilita el consumo de código, promueve la reutilización y es fundamental para compartir librerías internas, publicar en PyPI o versionar entregables.
Con la rápida adopción de pyproject.toml como archivo de configuración estándar, Python ha modernizado su sistema de empaquetado. En este artículo explico cómo utilizar dos herramientas esenciales para este flujo: build y twine.
¿Qué es build?
El módulo build proporciona una interfaz de alto nivel para generar los artefactos de distribución de un proyecto Python:
sdist(Source Distribution)wheel(formato binario compatible conpip)
Ambos formatos se generan a partir de la configuración en pyproject.toml, sin requerir un archivo setup.py.
Uso básico
uvx --from build pyproject-build
Este comando crea los archivos .tar.gz y .whl dentro del directorio dist/.
Ventajas de build
- No requiere
setuptoolsinstalado globalmente - Compatible con
pyproject.toml - Sigue las especificaciones modernas del Python Packaging Authority (PEP 517 y 518)
¿Qué es twine?
twine es una herramienta enfocada en la publicación de paquetes en repositorios como PyPI, desacoplándose por completo de setuptools durante esta etapa. Esto la hace más segura, portable y fácil de integrar en flujos de automatización.
Validación del paquete
Antes de subir un paquete, es buena práctica validar su integridad:
uvx twine check dist/*
Publicación en PyPI
uvx twine upload dist/*
Conclusión
build y twine forman parte del ecosistema moderno de empaquetado en Python. Al reemplazar herramientas obsoletas como setup.py, ofrecen mayor trazabilidad, mejores prácticas y compatibilidad con estándares actuales.
Distribuir correctamente tus proyectos no es un lujo, es parte del trabajo profesional. Automatiza este proceso y enfócate en lo esencial: escribir software de calidad.