Distribución de Paquetes (Pip, PyPl)

 

¿Qué es Pip?

pip es el gestor de paquetes de Python. Permite:

  • Instalar librerías

  • Actualizarlas

  • Desinstalarlas

  • Consultar versiones

  • Crear archivos de dependencias

Es la herramienta que conecta Python con PyPI.

¿Qué es PyPI?

PyPI (Python Package Index) es el repositorio oficial donde se publican las librerías de Python. Es como la “App Store” de Python.

Ejemplos de paquetes en PyPI:

  • requests

  • flask

  • numpy

  • pandas

  • beautifulsoup4

1. Instalar paquetes con pip

pip install requests

Instalar una versión específica:

pip install flask==2.3.2

Actualizar:

pip install --upgrade requests

Desinstalar:

pip uninstall requests

2. Ver paquetes instalados

pip list

Buscar un paquete:

pip search nombre

3. Crear un archivo de dependencias (requirements.txt)

Guardar las librerías instaladas:

pip freeze > requirements.txt

Instalar desde ese archivo:

pip install -r requirements.txt

Perfecto para proyectos colaborativos.

4. Crear tu propio paquete Python

Aquí empieza lo interesante: Tus alumnos pueden convertir su código en un paquete instalable.

Estructura básica

mi_paquete/
    mi_paquete/
        __init__.py
        funciones.py
    pyproject.toml
    README.md

5. Archivo pyproject.toml (moderno y recomendado)

Ejemplo mínimo:

[project]
name = "mi_paquete"
version = "0.1.0"
description = "Un paquete de ejemplo"
authors = [
    { name="Tu Nombre", email="tu@mail.com" }
]
readme = "README.md"
requires-python = ">=3.8"

6. Crear el paquete (build)

Instalar herramientas de empaquetado:

pip install build

Construir el paquete:

python -m build

Esto genera:

  • un archivo .tar.gz

  • un archivo .whl (wheel)

7. Instalar tu paquete localmente

pip install dist/mi_paquete-0.1.0-py3-none-any.whl

8. Subir el paquete a PyPI

Instalar Twine:

pip install twine

Subir:

twine upload dist/*

Necesitas una cuenta en PyPI.

ACTIVIDAD PRÁCTICA: “Crea y publica tu propia librería”

Objetivo: que tus alumnos creen un paquete real y lo instalen con pip.

Enunciado

  1. Crea una carpeta calculadora_avanzada

  2. Dentro, crea un módulo con funciones:

    • sumar(a, b)

    • restar(a, b)

    • multiplicar(a, b)

    • dividir(a, b)

  3. Añade un pyproject.toml con metadatos

  4. Crea un README.md

  5. Construye el paquete

  6. Instálalo localmente con pip

  7. (Opcional) Publícalo en PyPI

Solución propuesta (estructura)

calculadora_avanzada/funciones.py

def sumar(a, b):
    return a + b

def restar(a, b):
    return a - b

def multiplicar(a, b):
    return a * b

def dividir(a, b):
    if b == 0:
        raise ValueError("No se puede dividir entre cero")
    return a / b

calculadora_avanzada/__init__.py

from .funciones import sumar, restar, multiplicar, dividir

pyproject.toml

[project]
name = "calculadora-avanzada"
version = "0.1.0"
description = "Una calculadora simple para FP"
readme = "README.md"
requires-python = ">=3.8"

Resultado esperado

  • Los alumnos crean su propio paquete

  • Lo instalan con pip

  • Entienden cómo funciona PyPI

  • Aprenden buenas prácticas de distribución