GuíaAvanzado

Guía de Empaquetado y Herramientas CLI

Un script que "funciona en mi máquina" y un paquete instalable que otra persona puede usar son dos cosas muy distintas, y esta guía te lleva de uno al otro paso a paso. Trabajas empaquetando un solo caso realista —`reservo`, un sistema de reservas de salas de coworking cuyo modelo de objetos ya existe— y lo conviertes en una librería instalable con una herramienta de línea de comandos propia. Aprendes qué es un módulo y un paquete, cómo funciona `import` y el `sys.path`, el estándar moderno `pyproject.toml` (PEP 621) y cómo construir un wheel y un sdist reales con `uv build`, a aislar el proyecto en entornos virtuales y manejar dependencias con `pip` y `uv`, a construir una CLI completa con `argparse` (sin dependencias externas), a exponerla como comando instalado con un entry point en `[project.scripts]`, a estructurar un paquete real con submódulos, imports relativos y una API pública deliberada, y a configurar el toolchain de calidad (`ruff`, `mypy`, `pytest`, `pre-commit`). Todo lo ejecutable se corre de verdad —el comando `reservo price --tier basic --hours 3` imprime `7500` desde tu terminal—; lo único que se enseña como contenido sin ejecutar es la publicación en PyPI, porque es una acción pública e irreversible. El proyecto final integra las siete piezas en un paquete completo, construido, instalado y corriendo de punta a punta.

64
lecciones
8
módulos
Inglés · Español
disponible en
certificado
Gratis
acceso
NIEVA

Resultados

Lo que vas a poder hacer

  • Distinguir un módulo de un paquete, entender qué hace `__init__.py` y cómo Python resuelve un `import` a través de `sys.path`
  • Escribir un `pyproject.toml` completo según PEP 621 (metadata, dependencias, build backend) y construir un wheel y un sdist reales con `uv build`
  • Aislar un proyecto en un entorno virtual, manejar dependencias con `pip` y `uv`, fijar versiones para reproducibilidad e instalar en modo editable
  • Construir una interfaz de línea de comandos completa con `argparse`: subcomandos, argumentos posicionales y opciones, ayuda autogenerada y códigos de salida
  • Exponer una función `main()` como comando instalado en el PATH mediante un entry point (`[project.scripts]`), y entender cómo funciona el script wrapper que genera
  • Aplicar versionado semántico y conocer el flujo completo de distribución a PyPI/TestPyPI con `twine`
  • Estructurar un paquete real en submódulos con responsabilidades claras, imports relativos, `__main__.py` y dependencia en un solo sentido (la CLI llama a la librería, nunca al revés)
  • Declarar una API pública deliberada con `__all__` y re-exportar en `__init__.py`, y darle a `__version__` una única fuente de verdad
  • Configurar un toolchain de calidad moderno (`ruff` para lint y formato, `mypy` para tipos, `pytest` cableado, `pre-commit` para automatizar)
  • Integrar todas las piezas en un paquete distribuible completo, construido, instalado y verificado con la CLI corriendo desde el PATH

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Desarrolladores Python de nivel intermedio que solo han escrito scripts sueltos y nunca convirtieron su código en un paquete instalable
  • Devs que quieren darle a una herramienta propia una interfaz de línea de comandos profesional, con subcomandos y ayuda autogenerada
  • Personas que necesitan entender `pyproject.toml` a fondo porque lo ven en todos los proyectos modernos pero nunca lo escribieron desde cero
  • Cualquiera que quiera publicar su primera librería en PyPI y quiera conocer el flujo completo antes de hacerlo de verdad
  • Quien mantiene un paquete de un solo archivo que ya creció demasiado y necesita un criterio claro para estructurarlo en submódulos

Requisitos y materiales

  • Sintaxis básica de Python: variables, funciones, diccionarios, listas, control de flujo, y saber escribir y correr un archivo `.py`
  • Nociones mínimas de clases (no se requiere dominar diseño orientado a objetos)
  • Python 3.14 instalado y una terminal
  • No es necesario haber usado `pip`, `venv`, `uv` ni ninguna herramienta de empaquetado antes: todo se explica desde cero

Contenido

El temario, módulo por módulo

Abre cualquiera para ver sus lecciones.

Dudas frecuentes

Lo que suele preguntarse

Empieza cuando quieras

Reseñas

Lo que dicen los estudiantes

Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.

Aún no hay reseñas aprobadas.

¡Sé el primero en compartir tu experiencia!