¿Qué es una librería en Python?
Una librería (o “biblioteca”) es código que alguien ya escribió para resolver un problema común: hacer peticiones web, leer PDFs, crear gráficos, trabajar con fechas, etc.
- Python estándar: viene “de serie” (por ejemplo
json,os,math,datetime). - Librerías externas: se instalan aparte (por ejemplo
requests,pandas,flask,numpy).
Regla mental útil:
- Si lo importas y no lo instalas, normalmente es estándar.
- Si lo importas y te da error, probablemente hay que instalarlo.
¿Qué significa import?
Cuando haces:
import requests
Estás diciendo: “Python, carga ese paquete para que pueda usar sus funciones”.
También puedes importar cosas concretas:
from datetime import datetime
O ponerle un alias (muy común):
import pandas as pd
¿Dónde se instalan librerías?
En Python, las librerías se instalan en “un Python concreto”, que puede ser:
- Python del sistema (global).
- Un entorno virtual (recomendado para clase/proyectos).
- Una instalación específica (por ejemplo, un Python dentro de VS Code, conda, etc.).
La confusión típica del alumnado:
“He instalado
requestspero sigue dando error”
Casi siempre es porque instalaron en un Python y ejecutan con otro.
Gestores de paquetes: pip
pip es el instalador estándar de paquetes Python.
Comandos básicos:
pip --version
python3 -m pip --version
Instalar una librería:
python3 -m pip install requests
Actualizar una librería:
python3 -m pip install --upgrade requests
Ver lo instalado:
python3 -m pip list
Ver información de un paquete:
python3 -m pip show requests
La forma “pro” para clase: entornos virtuales (venv)
Esto evita romper el sistema y hace que cada proyecto tenga sus librerías.
Crear entorno virtual
En la carpeta del proyecto:
python3 -m venv venv
Activarlo
Linux/Mac:
source venv/bin/activate
Windows (PowerShell):
venv\Scripts\Activate.ps1
Windows (CMD):
venv\Scripts\activate.bat
Cuando está activo, normalmente verás (venv) al inicio de la terminal.
Instalar dentro del entorno
python -m pip install requests
5.4 Salir del entorno
deactivate
Cómo saber si algo es estándar o externo
Ejemplos:
- Estándar:
import json
import os
import datetime
- Externas (requieren pip):
import requests
import pandas
import flask
Buenas prácticas al trabajar con librerías
Fijar dependencias: requirements.txt
Generar lista de dependencias del entorno:
python -m pip freeze > requirements.txt
Instalar dependencias en otro equipo:
python -m pip install -r requirements.txt
Esto es oro puro para que los proyectos “funcionen igual” en todas las máquinas.
Leer documentación y “ejemplos mínimos”
La documentación oficial suele tener:
- instalación
- ejemplos pequeños
- parámetros importantes
- errores comunes
Ejemplo completo con requests (GET)
Vamos a hacer una petición HTTP a una API pública de ejemplo y procesar JSON.
Instalar requests
Si estás en venv, mejor.
python -m pip install requests
Script: peticion_get.py
import requests
URL = "https://httpbin.org/get"
def main():
try:
# timeout: evita que el programa se quede colgado si el servidor no responde
response = requests.get(URL, timeout=10)
# Lanza excepción si el status code es 4xx/5xx
response.raise_for_status()
# httpbin devuelve JSON
data = response.json()
print("✅ Status:", response.status_code)
print("✅ Tu IP según el servidor:", data.get("origin"))
print("✅ Headers enviados (ejemplo):")
headers = data.get("headers", {})
print(" User-Agent:", headers.get("User-Agent"))
except requests.exceptions.Timeout:
print("⏳ Error: timeout (el servidor tardó demasiado en responder).")
except requests.exceptions.HTTPError as e:
print("🚫 Error HTTP:", e)
except requests.exceptions.RequestException as e:
# Cubre: problemas de red, DNS, conexión, etc.
print("🌐 Error de red:", e)
except ValueError:
# Si .json() falla porque la respuesta no era JSON
print("🧩 Error: la respuesta no era JSON válido.")
if __name__ == "__main__":
main()
Ejecutarlo
python peticion_get.py
Qué deberían observar:
status_code(200 si ok)origin(la IP “vista” por el servidor)headers(cabeceras HTTP)
Ejemplo con parámetros (GET con params)
params construye la query ?clave=valor.
import requests
URL = "https://httpbin.org/get"
params = {
"busqueda": "python",
"pagina": 1
}
r = requests.get(URL, params=params, timeout=10)
print("URL final:", r.url)
print("Respuesta JSON:", r.json().get("args"))
Ejemplo POST (enviar datos)
Enviar JSON
import requests
URL = "https://httpbin.org/post"
payload = {
"usuario": "alumno01",
"rol": "tester"
}
r = requests.post(URL, json=payload, timeout=10)
r.raise_for_status()
data = r.json()
print("Enviado:", data.get("json"))
Enviar formulario (application/x-www-form-urlencoded)
import requests
URL = "https://httpbin.org/post"
form_data = {
"email": "alumno@ejemplo.com",
"password": "1234"
}
r = requests.post(URL, data=form_data, timeout=10)
print(r.json().get("form"))
Cabeceras y autenticación básica
Cabeceras (headers)
import requests
URL = "https://httpbin.org/headers"
headers = {
"User-Agent": "ClasePython/1.0",
"X-Profesor": "Antonio"
}
r = requests.get(URL, headers=headers, timeout=10)
print(r.json())
Auth básica (solo ejemplo didáctico)
import requests
URL = "https://httpbin.org/basic-auth/user/pass"
r = requests.get(URL, auth=("user", "pass"), timeout=10)
print(r.status_code, r.json())
Errores típicos (y cómo cazarlos rápido)
“ModuleNotFoundError: No module named ‘requests’”
- No está instalado en ese Python.
- Solución:
python -m pip install requests
python -c "import requests; print(requests.__version__)"
“Funciona en terminal pero no en VS Code”
- VS Code está usando otro intérprete.
- Solución: seleccionar el intérprete del venv en VS Code (Python: Select Interpreter).
“Se queda colgado”
- Falta
timeout. - Solución: siempre pon
timeout=...en peticiones.


