15. Módulos y PIP: ¡El Superpoder de No Reinventar la Rueda! 🌌
¿Qué es un Módulo y una Librería?
Hasta ahora has escrito todo tu código en un único archivo. Pero en la vida real, los proyectos tienen miles de líneas.
Para no perderte, dividimos el código en piezas llamadas Módulos (que no son más que otros archivos .py con funciones listas para usar).
Python viene con "baterías incluidas". Es decir, trae una Librería Estándar repleta de módulos listos que puedes importar usando la palabra clave import.
librerias.py
PYTHON
1 import math
2 import random
3
4 # Calcular raíz cuadrada usando math
5 raiz = math.sqrt(16)
6 print(f"La raíz cuadrada de 16 es: {raiz}")
7
8 # Elegir un número al azar del 1 al 10 usando random
9 numero_suerte = random.randint(1, 10)
10 print(f"Tu número de la suerte hoy es: {numero_suerte}")
Crea tus propios Módulos: Caso Práctico Validador de RUT 🛠️
Puedes importar funciones creadas por ti mismo ubicadas en otros archivos en la misma carpeta. Esto permite separar la lógica matemática pesada de tu programa principal.
A continuación, te mostramos el diseño de un entorno de desarrollo (IDE) con dos archivos: un módulo validador de RUT chileno (`validador_rut.py`) y el script principal (`main.py`) que lo consume.
EXPLORADOR
📁 proyecto_validador
validador_rut.py
PYTHON
1 # validador_rut.py
2 from itertools import cycle
3
4 def validar_rut(rut):
5 # Limpiamos el RUT de puntos y guiones, y pasamos a mayúsculas
13 # Validamos que el cuerpo contenga solo dígitos
14 ifnot cuerpo.isdigit():
15 returnFalse
16
17 # Calculamos el Dígito Verificador usando el Módulo 11
18 revertido = map(int, reversed(cuerpo))
19 factores = cycle(range(2, 8))
20 suma = sum(d * f for d, f inzip(revertido, factores))
21 res = 11 - (suma % 11)
22
23 dv_esperado = 'K'if res == 10else'0'if res == 11elsestr(res)
24
25 return dv == dv_esperado
main.py
PYTHON
1 # main.py
2 # Importamos la función de nuestro módulo personalizado
3 from validador_rut import validar_rut
4
5 rut_usuario = input("Ingresa tu RUT (ej: 12.345.678-9): ")
6
7 if validar_rut(rut_usuario):
8 print("✔ ¡El RUT ingresado es totalmente VÁLIDO!")
9 else:
10 print("❌ El RUT ingresado es INVÁLIDO. Por favor verifica.")
¿Qué es PIP y cómo funciona? 📦
Imagina que compras un teléfono nuevo. Viene con la app de llamadas y calculadora (Librería estándar). Pero si quieres jugar o chatear, vas a la App Store o Play Store y te descargas aplicaciones que otras personas programaron.
🚀 PIP: El Gestor de Paquetes oficial de Python PIP es la "App Store" de Python. Es una herramienta de consola que te permite descargar e instalar librerías externas gratuitas desarrolladas por la comunidad global de programadores (almacenadas en un sitio web llamado PyPI).
Para instalar una librería desde tu terminal de Windows/Mac (fuera de Python), usas el comando:
Terminal
BASH
1 # Escribe esto en tu consola o terminal (fuera de Python)
2 pip install requests
¿Para qué escribir todo a mano? ¡Usa PIP! 📦⚡
Para resolver el validador de RUT que programamos arriba, no es necesario inventar la rueda de nuevo. En PyPI existe una librería oficial llamada rutificador que resuelve esto en un segundo.
uso_rutificador.py
PYTHON
1 # Ejemplo usando la librería oficial 'rutificador'
2 # Primero instalas con: pip install rutificador
3 import rutificador
4
5 # Formatear un RUT sucio a formato estándar con puntos y guion
Otro uso increíble de PIP es la ciberseguridad. Si necesitas proteger los datos de tus clientes (como tarjetas, emails o passwords en tu base de datos), puedes instalar cryptography para cifrar y descifrar la información de forma militar con un estándar llamado Fernet:
Paso a Paso Práctico: Conectando con la API de Rick and Morty 👽
La librería externa requests es la más famosa del mundo para conectarse a internet. Vamos a usarla para comunicarnos con la API oficial de Rick and Morty y traer la ficha técnica de un personaje real en vivo.
Abre tu terminal e instala la librería con pip install requests.
Crea un archivo llamado rick_api.py.
Copia, ejecuta el siguiente código y asómbrate con la respuesta:
rick_api.py
PYTHON
1 import requests
2
3 # URL de la API pública para obtener al personaje ID 1 (Rick Sanchez)
28 except requests.exceptions.RequestException as e:
29 print(f"❌ Error de conexión al servidor: {e}")
Conectando con la API de Pokémon (PokéAPI) 🐹
¡Intentémoslo ahora con otra API sumamente popular! Usaremos la PokéAPI para consultar información detallada de cualquier Pokémon (como sus habilidades y peso) usando el mismo paquete requests.
pokemon_api.py
PYTHON
1 import requests
2
3 # Buscamos al pokemon Ditto en la API pública de Pokémon
26 except requests.exceptions.RequestException as e:
27 print(f"❌ Error de conexión al servidor: {e}")
Tabla de las Librerías PIP Más Utilizadas en la Industria 🏆📊
El ecosistema de Python es gigante. Para ayudarte a navegarlo, te presentamos una tabla resumen de los paquetes más populares del mundo y por qué todo desarrollador profesional debe conocerlos:
Librería (PIP)
Categoría
Comando de Instalación
Propósito / ¿Por qué es famosa?
requests
Internet y APIs
pip install requests
La librería estándar de facto para consumir APIs y hacer peticiones HTTP (GET, POST).
pandas
Ciencia de Datos
pip install pandas
Manipulación y análisis de datos estructurados (tablas gigantes, archivos Excel y CSV).
cryptography
Ciberseguridad
pip install cryptography
Provee recetas y primitivas criptográficas seguras y robustas para cifrar contraseñas y archivos.
flask / fastapi
Desarrollo Web
pip install fastapi uvicorn
Permiten crear servidores, microservicios y APIs web hiperrápidas listas para producción.
rich
Interfaz de Consola
pip install rich
Hacer que la salida de texto de tu consola sea hermosa (colores, paneles, emojis y barras de progreso).
pytest
Calidad y Pruebas
pip install pytest
Escribir y automatizar pruebas unitarias e integrales para certificar que el software no falle.
openai
Inteligencia Artificial
pip install openai
Librería oficial para conectar tus proyectos con Modelos de Lenguaje (ChatGPT, DeepSeek, Claude).
Las mejores Librerías (PIP) para Experimentar 🧪
Python tiene miles de paquetes maravillosos. Aquí tienes una selección premium de los mejores y cómo se usan en código real:
🌐 1. Flask (Crear Servidores y Páginas Web)
¿Quieres transformar tu script de Python en un sitio web real? Con pip install flask puedes levantar un servidor web local en solo 5 líneas de código:
servidor_web.py
PYTHON
1 from flask import Flask
2
3 # Inicializamos nuestra aplicación Web Flask
4 app = Flask(__name__)
5
6 # Definimos la ruta principal '/'
7 @app.route("/")
8 def home():
9 return"<h1>☕ ¡Bienvenido a la Cafetería Web en Flask! ☕</h1><p>Página servida con Python.</p>"
Puedes conectar tus programas de Python a modelos de Inteligencia Artificial como DeepSeek o GPT-4 instalando la librería oficial de API: pip install openai.
conexion_ia.py
PYTHON
1 from openai import OpenAI
2
3 # Conectamos con el cliente compatible con OpenAI de DeepSeek
4 # (DeepSeek usa el mismo estándar de librerías que OpenAI)
5 client = OpenAI(
6 api_key="TU_LLAVE_DE_DEEPSEEK",
7 base_url="https://api.deepseek.com"
8 )
9
10 response = client.chat.completions.create(
11 model="deepseek-chat",
12 messages=[
13 {"role": "system", "content": "Eres un barista experto en café y Python."},
14 {"role": "user", "content": "Dame una receta corta de café usando Python."}
15 ],
16 stream=False
17 )
18
19 print(response.choices[0].message.content)
🎨 3. Rich (Diseño Espectacular en Consola)
¿Cansado de la consola aburrida y monótona? Con pip install rich puedes imprimir texto en colores, cajas, emojis y tablas espectaculares de forma muy sencilla:
diseno_consola.py
PYTHON
1 from rich importprint
2 from rich.table import Table
3
4 # ¡Rich nos permite imprimir con emojis, colores y tablas hermosas!
5 tabla = Table(title="Menú de Cafetería Premium")
13 tabla.add_row("C03", "Muffin Relleno de Arándano", "$1.200")
14
15 print(tabla)
Bases de Datos Locales: SQLite3 y SQLAlchemy (CRUD completo) 🗄️
Cuando necesitas almacenar información de manera persistente (por ejemplo, el menú o los clientes de tu cafetería), las bases de datos son tus mejores aliadas.
Python incluye por defecto la librería sqlite3, una base de datos ligera que se guarda en un solo archivo local. Sin embargo, en el mundo profesional es muy común utilizar un ORM (Object-Relational Mapping) como SQLAlchemy. Un ORM te permite interactuar con la base de datos usando clases y objetos de Python en lugar de escribir consultas SQL a mano.
💡 ¿Qué es CRUD?
Es el acrónimo para las cuatro operaciones fundamentales de una base de datos: Create (Crear/Insertar), Read (Leer/Consultar), Update (Actualizar) y Delete (Eliminar).
Para este ejemplo, primero instala SQLAlchemy con pip install sqlalchemy y luego ejecuta el siguiente código para ver un CRUD completo automatizado:
db_crud.py
PYTHON
1 # Instalación previa: pip install sqlalchemy
2 from sqlalchemy import create_engine, Column, Integer, String, Float
3 from sqlalchemy.orm import declarative_base, sessionmaker
4
5 # 1. Creamos la conexión al motor de base de datos local SQLite (archivo local)
38 # U - UPDATE: Actualizamos el precio del Café Americano
39 americano = session.query(Producto).filter_by(nombre="Café Americano").first()
40 if americano:
41 americano.precio = 2.80
42 session.commit()
43 print("\n✔ Precio del Café Americano actualizado.")
44
45 # D - DELETE: Eliminamos el Muffin de Chocolate
46 muffin = session.query(Producto).filter_by(nombre="Muffin de Chocolate").first()
47 if muffin:
48 session.delete(muffin)
49 session.commit()
50 print("✔ Muffin eliminado del catálogo.")
El archivo requirements.txt 📋
Cuando trabajas en equipo o subes tu código a la nube, no compartes la carpeta de librerías descargadas (que son gigabytes). En su lugar, creas un archivo de texto llamado requirements.txt que actúa como la lista de compras de tus dependencias:
requirements.txt
PLAINTEXT
1 requests==2.31.0
2 flask==3.0.2
3 rich==13.7.1
4 openai==1.12.0
Cualquier otro programador puede instalar de golpe todas las librerías necesarias con un único comando:
Terminal
BASH
1 pip install -r requirements.txt
🐍 Ponte a prueba: El Buscador Multiverso
Escribe un programa que solicite al usuario ingresar un número de ID por consola, haga una petición GET a la API de Rick and Morty para ese ID específico, y si existe, muestre en pantalla el Nombre, Género y si está Vivo o Muerto. ¡Agrega control de excepciones por si el ID ingresado no existe o no hay internet!
👁️ Ver solución sugerida
buscador_rick.py
PYTHON
1 import requests
2
3 # 1. Pide al usuario el ID de un personaje
4 try:
5 personaje_id = int(input("Ingresa el ID del personaje de Rick & Morty a buscar (1 al 826): "))
6 if personaje_id < 1or personaje_id > 826:
7 print("ID fuera de rango. Intentando con ID 1 por defecto...")
8 personaje_id = 1
9 except ValueError:
10 print("Entrada inválida. Usando ID 1 por defecto...")