Saltar al contenido

lección 7

pip install: usar herramientas de otros

Crear un entorno virtual aislado, instalar librerías externas con pip, gestionar dependencias con requirements.txt y entender PyPI.

60 min

La biblioteca estándar de Python es potente, pero el verdadero superpoder está en la comunidad. Hay más de 500,000 paquetes disponibles en PyPI (Python Package Index) — librerías que otros desarrolladores han escrito, probado y publicado para que tú no tengas que reinventar la rueda. Pandas, requests, pytest, black, pyspark... todo se instala con pip.

Piensa en pip como la app store de Python. ¿Necesitas manipular tablas de datos? pip install pandas. ¿Necesitas llamar a una API? pip install requests. ¿Necesitas testear tu código? pip install pytest. En 10 segundos tienes herramientas que costaron miles de horas construir.

### Pero antes de instalar nada: ¿dónde van las librerías?

Antes de lanzarte a hacer pip install, necesitas entender un problema fundamental. Imagina que tienes dos proyectos en tu ordenador. El proyecto A necesita la librería "requests" versión 2.28. El proyecto B necesita "requests" versión 2.31. Si ambos usan la misma instalación de Python, están condenados a pelear por la versión. Alguien pierde.

Este es el equivalente a tener una cocina compartida donde dos chefs necesitan aceite de oliva — pero uno necesita virgen extra y el otro de girasol, y solo hay un hueco en la estantería. Si metes uno, el otro desaparece. La solución es que cada chef tenga SU propia despensa. En Python, esa despensa privada se llama entorno virtual (venv).

### Entornos virtuales: tu burbuja aislada

Un entorno virtual (venv) es una copia aislada de Python dentro de tu proyecto. Cada proyecto tiene su propio venv con sus propias librerías. Lo que instales en un venv no afecta a nada fuera de él. Es como tener un taller limpio para cada proyecto, sin que las herramientas de uno se mezclen con las del otro.

Ahora que ya sabes qué son los módulos (lección 6) y cómo funcionan los imports, esto te hará sentido completo: un venv es básicamente un directorio con una copia de Python y una carpeta vacía donde pip instalará las librerías. Cuando activas el venv, tu terminal "redirige" los comandos python y pip para que apunten a esa copia local en vez de a la instalación global del sistema.

Sin venv: caos de versiones. Con venv: cada proyecto es independiente.

### Crear y activar el venv — Windows vs Mac

Crear un venv es un comando. Activarlo es otro. El proceso es casi idéntico en ambos sistemas, con una diferencia clave: el comando de activación. A partir de ahora, ANTES de instalar cualquier librería con pip, siempre crearás y activarás un venv.

1# 1. Crea una carpeta para tu proyecto
2mkdir mi-proyecto-datos
3cd mi-proyecto-datos
4
5# 2. Crea el entorno virtual
6python3 -m venv .venv
7
8# 3. Actívalo
9source .venv/bin/activate
10
11# 4. Tu prompt cambia:
12# (.venv) usuario@mac mi-proyecto-datos %
13
14# 5. Verifica que python apunta al venv
15python --version
16# Python 3.12.4

Windows: la activación usa Activate.ps1 (PowerShell)

Una vez activado el venv, el comando es "python" y "pip" en AMBOS sistemas (no necesitas python3 ni pip3 en Mac). Esa es una gran ventaja: dentro del venv, todo es uniforme. Cuando termines de trabajar, escribe "deactivate" para salir del venv.

Regla de oro del profesional: NUNCA hagas pip install sin un venv activo. Si tu terminal no muestra (.venv) antes del prompt, actívalo antes de instalar nada. Es como ponerse el cinturón antes de conducir — hazlo automáticamente.

### Posibles problemas con el venv

  • Windows — "Execution Policy": Si PowerShell dice que no puede ejecutar scripts, ejecuta: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser y confirma con S (o con Y si tu Windows está en inglés).
  • Mac — "command not found: python3": Homebrew no está en tu PATH. Ejecuta: eval "$(/opt/homebrew/bin/brew shellenv)" y luego intenta de nuevo.
  • Ambos — "pip: command not found" dentro del venv: Asegúrate de que el venv está activado ((.venv) visible en el prompt).
  • Ambos — Si tu venv se corrompe: bórralo y crea uno nuevo. Remove-Item -Recurse .venv (Win) o rm -rf .venv (Mac), luego recrea con python -m venv .venv.

La carpeta .venv NO se sube a Git. Añade ".venv/" a tu archivo .gitignore. La carpeta contiene binarios específicos de tu sistema operativo y puede pesar cientos de MB. Lo que SÍ se sube es el archivo requirements.txt con la lista de dependencias (lo verás en unos minutos).

### ¿Qué es pip y cómo funciona?

pip es el gestor de paquetes de Python. Viene incluido con Python desde la versión 3.4. Su trabajo es: descargar paquetes de internet (de PyPI por defecto), instalarlos en tu entorno y gestionar las dependencias entre paquetes.

1pip install requests
2pip install pandas
3
4# (Dentro del venv, "pip" funciona igual en ambos sistemas)
5
6# Instalar una versión específica
7pip install requests==2.31.0
8
9# Instalar versión mínima
10pip install "requests>=2.28"
11
12# Ver qué tienes instalado
13pip list
14
15# Ver detalles de un paquete
16pip show requests

Dentro del venv, pip funciona igual en Windows y Mac.

Recuerda: todo pip install que hagas debe ser dentro de tu venv activo. Si ves (.venv) en el prompt, estás bien. Si no lo ves, actívalo primero (repasa la sección anterior de esta lección).

### requirements.txt: la receta de tu proyecto

Cuando compartes tu proyecto con alguien (o contigo mismo en otro ordenador), esa persona necesita instalar las mismas librerías. El archivo requirements.txt es la lista de ingredientes — le dice a pip exactamente qué instalar y en qué versión.

1# Generar requirements.txt con lo que tienes instalado
2pip freeze > requirements.txt
3
4# El archivo contiene algo como:
5# requests==2.31.0
6# pandas==2.1.4
7# numpy==1.26.2
8
9# Instalar todo desde requirements.txt (otro dev, otro PC)
10pip install -r requirements.txt

pip freeze captura tu entorno. pip install -r lo recrea exactamente.

pip freeze captura TODAS las dependencias, incluidas las transitivas (las que se instalaron automáticamente). Para proyectos serios, considera escribir requirements.txt manualmente solo con tus dependencias directas. Así controlas qué usas y evitas sorpresas.

Los números de versión de los ejemplos de esta lección son los que había cuando se escribió: sirven para ver la forma que tiene el fichero, no para copiarlos. Cuando montes el tuyo, pon las versiones que instales tú — y para eso está pip freeze, que las escribe solas.

### Librerías esenciales para trabajar con datos

No necesitas instalarlas hoy — las irás incorporando sección a sección. Pero conviene saber qué existe y para qué:

Las que vas a usar seguro, vayas por donde vayas:

  • pandas — manipular datos en tablas (DataFrames). Es la librería central de todo profesional de datos.
  • requests — pedir datos a una API por HTTP.
  • python-dotenv — leer configuración desde un fichero .env, sin escribir contraseñas en el código.

Si vas por análisis de datos:

  • matplotlib y seaborn — hacer gráficos. Las verás en la sección de visualización.
  • openpyxl — leer y escribir ficheros de Excel (.xlsx) desde Python. La necesitarás el día que te manden el informe en Excel.
  • jupyter — trabajar en notebooks, que es donde se explora antes de escribir el script definitivo.

Si vas por ingeniería de datos:

  • pytest — escribir tests que comprueban que tu proceso sigue funcionando.
  • pyyaml — leer y escribir ficheros YAML, el formato de configuración de casi todas las herramientas.
  • mypy — avisar de errores de tipos antes de ejecutar.

Y una que le viene bien a todo el mundo: black — formatea tu código solo, siempre igual. Se acabó discutir dónde van los espacios.

### Tu primer script con librerías externas

Vamos a instalar python-dotenv (para manejar configuración) y a usarla en un script. Este patrón lo verás en TODOS los proyectos profesionales:

1# Instala python-dotenv (dentro de tu venv)
2pip install python-dotenv

Un solo comando para instalar la librería.

1# Primero crea un archivo .env con configuración
2# (este archivo NO se sube a git — contiene secretos)
3import os
4
5# Simular un .env escribiéndolo
6with open(".env", "w") as f:
7 f.write("RUTA_DATOS=data/ventas.csv\n")
8 f.write("UMBRAL_VIP=500\n")
9 f.write("MODO=desarrollo\n")
10
11# Ahora usar dotenv para cargar esas variables
12from dotenv import load_dotenv
13
14load_dotenv() # Carga las variables del .env al entorno
15
16# Leer las variables
17ruta = os.getenv("RUTA_DATOS")
18umbral = int(os.getenv("UMBRAL_VIP", "100")) # 100 es el default
19modo = os.getenv("MODO")
20
21print(f"Ruta de datos: {ruta}")
22print(f"Umbral VIP: {umbral}€")
23print(f"Modo: {modo}")
24
25if modo == "desarrollo":
26 print("[AVISO] Ejecutando en modo desarrollo")

dotenv carga config del .env — secretos y parámetros fuera del código.

Consejo de senior: NUNCA pongas credenciales, passwords o API keys directamente en tu código Python. Usa variables de entorno (con dotenv o directamente). Si subes un secreto a Git por accidente, considéralo comprometido — rota la credencial inmediatamente.

### Resolver problemas de instalación

  • Windows — Si pip falla con permisos, asegúrate de que PowerShell NO es administrador cuando trabajas con venvs.
  • Mac — Si pip install falla con errores de compilación, instala Xcode Command Line Tools: xcode-select --install
  • Ambos — "Could not find a version that satisfies": el paquete no existe o escribiste mal el nombre. Búscalo en pypi.org.
  • Ambos — Si tu venv se corrompe: bórralo y crea uno nuevo. rm -rf .venv (Mac) o Remove-Item -Recurse .venv (Windows), luego recrea.
  • Ambos — Actualizar pip: python -m pip install --upgrade pip
PyPI → pip install → .venv → import en tu código. requirements.txt documenta el estado.

Regístrate para guardar tu progreso.

## comentarios

Reporta erratas, ayuda a otros o comparte tu opinión. Sé constructivo.

Inicia sesión para comentar y responder.

cargando comentarios...