Publicación de Paquetes en GitHub y PyPI 🚀
📌 ¿Por qué publicar paquetes?
Publicar un paquete en GitHub o PyPI (Python Package Index) permite compartir código reutilizable con la comunidad o facilitar su distribución dentro de un equipo de trabajo.
🔹 Publicación en GitHub Packages
GitHub Packages permite almacenar y distribuir paquetes de software junto con el código fuente del proyecto.
1️⃣ Configurar el archivo setup.py
from setuptools import setup, find_packages
setup(
name="miproyecto",
version="0.1.0",
packages=find_packages(),
install_requires=[
"numpy", # Dependencias del paquete
],
author="Tu Nombre",
author_email="tuemail@example.com",
description="Descripción breve del paquete",
url="https://github.com/tuusuario/miproyecto",
)
2️⃣ Crear un archivo .pypirc
En la carpeta de usuario (~/.pypirc en Linux/Mac o C:\Users\TU_USUARIO\.pypirc en Windows), añade:
[distutils]
index-servers =
github
[github]
repository =
username = __token__
password = TU_GITHUB_TOKEN
💡 Importante: Genera un token en GitHub > Settings > Developer settings > Personal access tokens con permisos de write:packages.
3️⃣ Construir y subir el paquete a GitHub Packages
pip install build twine
python -m build
twine upload --repository github dist/*
🔹 Publicación en PyPI (Python Package Index)
PyPI es el repositorio oficial de paquetes de Python.
1️⃣ Crear una cuenta en PyPI
📌 Ve a y crea una cuenta.
2️⃣ Configurar setup.py (igual que en GitHub)
3️⃣ Crear el archivo pyproject.toml
Añade el siguiente contenido para definir los requisitos de construcción:
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
4️⃣ Construir el paquete
python -m build
5️⃣ Subir el paquete a PyPI
twine upload dist/*
Esto pedirá tus credenciales de PyPI (usuario y contraseña o token de acceso).
💡 Diferencias Clave entre GitHub Packages y PyPI
CaracterísticaGitHub PackagesPyPI (Python Package Index)Público/PrivadoPuede ser privado o públicoSolo públicoIntegraciónDirectamente con GitHubIndependiente de GitHubDistribuciónRequiere autenticación para instalar paquetes privadosAccesible sin autenticación
📥 Instalación de paquetes desde GitHub y PyPI
✅ Desde PyPI:
pip install miproyecto
✅ Desde GitHub (paquete público):
pip install git+https://github.com/tuusuario/miproyecto.git
✅ Desde GitHub Packages (paquete privado):
pip install --index-url miproyecto
💡 Conclusión:
Publicar paquetes en GitHub Packages es útil para proyectos privados, mientras que PyPI es ideal para compartir código con la comunidad de Python. 🚀