Configuración del Entorno Virtual
Ahora que ya conoces la sintaxis básica, este es un buen momento para aprender a trabajar con un entorno limpio y reproducible. Si solo quieres seguir practicando lenguaje puro, puedes volver a este módulo más tarde, pero desde aquí empieza el flujo de trabajo más profesional del curso.
Al completar este módulo entenderás el flujo de trabajo completo:
- pyenv: Cómo tener múltiples versiones de Python instaladas (3.10, 3.11, 3.12) sin conflictos.
- venv: Cómo crear un espacio aislado para cada proyecto usando una de esas versiones.
- pip: Cómo instalar librerías dentro de ese espacio aislado.
El Flujo de Trabajo Profesional
Antes de entrar en comandos, es crucial entender cómo encajan estas tres piezas. Muchos tutoriales las enseñan por separado, pero están diseñadas para usarse juntas.
Imagina que eres un constructor de casas:
- pyenv (El Terreno): Eliges sobre qué cimientos construir. ¿Quieres usar Python 3.10 o Python 3.12?
pyenvte permite tener ambos disponibles y elegir uno para cada obra. - venv (La Casa): Una vez elegido el terreno (la versión de Python), construyes una casa aislada (el entorno virtual). Lo que pasa dentro de la casa, se queda en la casa. Si rompes algo dentro, no afectas a la casa del vecino (otro proyecto).
- pip (Los Muebles): Tienes la casa vacía. Ahora usas
pippara traer los muebles (librerías comorequests,pandas,django) que necesitas específicamente para esa casa.
graph TD
subgraph PC ["Tu Ordenador"]
style PC fill:#f9f9f9,stroke:#333,stroke-width:2px
subgraph Pyenv ["Gestor pyenv"]
style Pyenv fill:#e1f5fe,stroke:#0277bd
P310["Python 3.10"]
P312["Python 3.12"]
end
subgraph Proy1 ["Proyecto A"]
style Proy1 fill:#e8f5e9,stroke:#2e7d32
Env1["Entorno Virtual (.venv)"]
Lib1["Librerías: Django 3.2"]
end
subgraph Proy2 ["Proyecto B"]
style Proy2 fill:#fff3e0,stroke:#ef6c00
Env2["Entorno Virtual (.venv)"]
Lib2["Librerías: Django 4.0"]
end
P310 -->|Crea| Env1
P312 -->|Crea| Env2
Env1 -->|Usa pip para| Lib1
Env2 -->|Usa pip para| Lib2
endpyenv: Gestionando Múltiples Versiones
En el mundo real, trabajarás en proyectos antiguos que necesitan Python 3.8 y proyectos nuevos que usan Python 3.12. Instalar y desinstalar versiones manualmente es un caos. pyenv soluciona esto permitiéndote instalar múltiples versiones una al lado de la otra.
Instalación de pyenv
En Windows, usamos pyenv-win.
- Abre PowerShell como Administrador.
- Ejecuta estos comandos para instalarlo:
1Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
2Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; ./install-pyenv-win.ps1- Cierra y vuelve a abrir la terminal para que los cambios surtan efecto.
- Verifica que funciona:
pyenv --version
En sistemas Unix, usamos el instalador automático.
- Abre tu terminal y ejecuta:
1curl https://pyenv.run | bash- Configura tu shell (añade esto a tu
.bashrco.zshrc):
1export PYENV_ROOT="$HOME/.pyenv"
2[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
3eval "$(pyenv init -)"- Reinicia la terminal.
- Verifica:
pyenv --version
Cómo usar pyenv
El flujo es simple: Instalas una versión y luego decides dónde usarla Globalmente (todo el PC) o Localmente (solo esta carpeta).
- Ver qué puedes instalar:
1pyenv install --list - Instalar una versión concreta (por ejemplo, la 3.11.5):
1pyenv install 3.11.5 - Establecerla para tu proyecto actual:
Sitúate en la carpeta de tu proyecto y ejecuta:
Esto crea un archivo
1pyenv local 3.11.5.python-versionoculto. Ahora, cada vez que entres a esta carpeta, pyenv cambiará mágicamente tu comandopythonpara que use la versión 3.11.5.
venv: Creando el Espacio Aislado
Ahora que pyenv ha seleccionado la versión correcta de Python para tu carpeta, el siguiente paso es crear el entorno virtual.
Piensa en el entorno virtual como una carpeta .venv que contiene una copia pequeña de ese Python que seleccionaste, lista para recibir librerías. Si no usas venv, las librerías se instalarían en el Python global de tu sistema, mezclándose con las de otros proyectos y causando conflictos.
Pasos para crear el entorno
-
Asegúrate de estar en la carpeta de tu proyecto (donde hiciste el
pyenv local). -
Ejecuta el comando para crear el entorno:
1python -m venv .venv(Nota:
.venves solo el nombre de la carpeta. Puedes llamarla como quieras, pero.venves el estándar). -
¡IMPORTANTE! Activar el entorno: Crearlo no es suficiente; tienes que “entrar” en él.
1.venv\Scripts\Activate.ps1(Si ves un error de seguridad, ejecuta: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser)
1source .venv/bin/activateSabrás que estás dentro porque tu terminal mostrará (.venv) al principio de la línea. Hasta que no veas esto, no instales nada.
pip: Amueblando tu Entorno
Ahora estás dentro de tu entorno virtual (.venv). Es una habitación vacía. Es hora de usar pip para instalar las herramientas (librerías) que tu proyecto necesita.
El comando mágico
1pip install nombre_del_paquetePor ejemplo, si necesitas requests para hacer peticiones web:
1pip install requestsEste paquete se guardará dentro de la carpeta .venv/Lib/site-packages, totalmente aislado de tu sistema.
Buenas Prácticas: requirements.txt
Un proyecto profesional debe ser reproducible. Si tu compañero se descarga tu código, debe poder instalar las mismas librerías con las mismas versiones.
-
Congelar el estado actual: Una vez que tu proyecto funciona, guarda la lista de todo lo que has instalado:
1pip freeze > requirements.txtEsto crea un archivo de texto con la lista de la compra exacta.
-
Instalar desde la lista: Cuando alguien (o tú mismo en otro PC) quiera preparar el entorno, solo tiene que hacer:
1pip install -r requirements.txt
Ejercicio Integrador: Todo junto
Vamos a simular un proyecto real desde cero para consolidar el flujo: pyenv + venv + pip.
Imagina que te piden un proyecto que debe funcionar obligatoriamente con Python 3.10 y necesita la librería pandas.
Sigue estos pasos en orden:
-
Preparar el terreno (pyenv):
- Crea una carpeta
analizador-datosy entra en ella. - Asegúrate de tener Python 3.10 instalado (
pyenv install 3.10.11). - Fija la versión local para esta carpeta:
pyenv local 3.10.11. - Comprueba que
python --versiondice 3.10.11.
- Crea una carpeta
-
Construir la casa (venv):
- Crea el entorno virtual:
python -m venv .venv. - Actívalo (busca el comando según tu sistema arriba).
- Asegúrate de ver
(.venv)en tu terminal.
- Crea el entorno virtual:
-
Amueblar (pip):
- Actualiza pip (siempre es bueno):
python -m pip install --upgrade pip. - Instala la librería:
pip install pandas. - Comprueba qué se instaló:
pip list. - Genera el archivo de registro:
pip freeze > requirements.txt.
- Actualiza pip (siempre es bueno):
-
Limpieza:
- Sal del entorno virtual:
deactivate. - Intenta hacer
pip listahora. ¡Verás que pandas ya no está! Eso es la magia del aislamiento.
- Sal del entorno virtual:
Resumen de Comandos del Flujo
| Paso | Herramienta | Comando Típico |
|---|---|---|
| 1 | pyenv | pyenv local 3.X.X (Elegir versión del proyecto) |
| 2 | python | python -m venv .venv (Crear entorno aislado) |
| 3 | Shell | source .venv/bin/activate (Entrar al entorno) |
| 4 | pip | pip install paquete (Instalar herramientas) |
| 5 | pip | pip freeze > requirements.txt (Guardar estado) |
Quiz
Pon a prueba tu comprensión del flujo de trabajo: