Creación y Uso de Paquetes PIP en Python desde GitHub

Clase 41 de 42Curso de Git y GitHub

Resumen

Publicar un paquete propio en PyPI para utilizarlo como dependencia es un hito emocionante en el desarrollo de software. En esta guía, veremos el paso a paso para lanzar un release en GitHub, crear una aplicación en Python que consuma este paquete, y los consejos para compartir tus desarrollos en plataformas como Nuget y NPM.

¿Cómo crear un release en GitHub?

  1. Navegar a Releases: En tu repositorio, selecciona la opción de releases y elige crear un nuevo release.
  2. Definir el tag: Elige la versión adecuada, por ejemplo, v0.1.0 para versiones preliminares. Asegúrate de que el tag coincida con la rama desde la que quieres lanzar el release, generalmente main.
  3. Completar título y descripción: Utiliza el mismo tag en el título del release para mantener coherencia.
  4. Subir binarios: Agrega archivos binarios, como .tar.gz o .whl, ubicados en la carpeta dist de tu proyecto. Esto garantiza que los usuarios puedan instalar el paquete con facilidad.
  5. Publicar release: Una vez que hayas verificado los detalles, selecciona publicar release.

¿Cómo instalar el paquete desde GitHub?

Para instalar el paquete en un nuevo proyecto:

  1. Copiar el link del archivo .whl: Navega hasta el archivo .whl en GitHub, copia la URL.
  2. Instalar el paquete: En la terminal de tu proyecto, ejecuta pip3 install <URL_del_archivo_whl>. Esto descargará e instalará el paquete.
  3. Verificar instalación: Utiliza pip3 list para confirmar que el paquete aparece en la lista de dependencias instaladas.

¿Cómo consumir el paquete en una aplicación de Python?

  1. Preparar la estructura de carpetas: Crea una carpeta app en la raíz de tu repositorio y dentro de ella un archivo app.py.
  2. Importar y usar el paquete: Dentro de app.py, usa from <nombre_del_paquete> import <método>, y escribe un código sencillo que ejecute este método, por ejemplo, print(saludo("Platzi")).
  3. Ejecutar la aplicación: Desde la terminal, navega hasta la carpeta app y ejecuta python3 app.py para ver el resultado en consola.

¿Cómo extender esta práctica a otros entornos?

  • Paquetes NuGet en .NET: Crea y distribuye librerías en .NET usando el sistema de paquetes NuGet.
  • Paquetes NPM en Node.js: Desarrolla y distribuye paquetes reutilizables para Node.
  • Contribución comunitaria: Comparte tus paquetes y anima a otros a utilizarlos y mejorarlos.