Configuración del Entorno Virtual

Cuándo estudiar este módulo

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.

Objetivos del módulo

Al completar este módulo entenderás el flujo de trabajo completo:

  1. pyenv: Cómo tener múltiples versiones de Python instaladas (3.10, 3.11, 3.12) sin conflictos.
  2. venv: Cómo crear un espacio aislado para cada proyecto usando una de esas versiones.
  3. 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:

  1. pyenv (El Terreno): Eliges sobre qué cimientos construir. ¿Quieres usar Python 3.10 o Python 3.12? pyenv te permite tener ambos disponibles y elegir uno para cada obra.
  2. 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).
  3. pip (Los Muebles): Tienes la casa vacía. Ahora usas pip para traer los muebles (librerías como requests, 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
    end

pyenv: 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.

  1. Abre PowerShell como Administrador.
  2. 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
  1. Cierra y vuelve a abrir la terminal para que los cambios surtan efecto.
  2. Verifica que funciona: pyenv --version

En sistemas Unix, usamos el instalador automático.

  1. Abre tu terminal y ejecuta:
1curl https://pyenv.run | bash
  1. Configura tu shell (añade esto a tu .bashrc o .zshrc):
1export PYENV_ROOT="$HOME/.pyenv"
2[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
3eval "$(pyenv init -)"
  1. Reinicia la terminal.
  2. 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).

  1. Ver qué puedes instalar:
    1pyenv install --list
  2. Instalar una versión concreta (por ejemplo, la 3.11.5):
    1pyenv install 3.11.5
  3. Establecerla para tu proyecto actual: Sitúate en la carpeta de tu proyecto y ejecuta:
    1pyenv local 3.11.5
    Esto crea un archivo .python-version oculto. Ahora, cada vez que entres a esta carpeta, pyenv cambiará mágicamente tu comando python para 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

  1. Asegúrate de estar en la carpeta de tu proyecto (donde hiciste el pyenv local).

  2. Ejecuta el comando para crear el entorno:

    1python -m venv .venv

    (Nota: .venv es solo el nombre de la carpeta. Puedes llamarla como quieras, pero .venv es el estándar).

  3. ¡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/activate

Sabrá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_paquete

Por ejemplo, si necesitas requests para hacer peticiones web:

1pip install requests

Este 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.

  1. Congelar el estado actual: Una vez que tu proyecto funciona, guarda la lista de todo lo que has instalado:

    1pip freeze > requirements.txt

    Esto crea un archivo de texto con la lista de la compra exacta.

  2. 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.

Ejercicio: Proyecto ‘Analizador de Datos’

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:

  1. Preparar el terreno (pyenv):

    • Crea una carpeta analizador-datos y 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 --version dice 3.10.11.
  2. 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.
  3. 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.
  4. Limpieza:

    • Sal del entorno virtual: deactivate.
    • Intenta hacer pip list ahora. ¡Verás que pandas ya no está! Eso es la magia del aislamiento.

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:

🎮 Quiz: Entorno Virtual

0 / 0
Cargando preguntas...

Anterior: Fundamentos Siguiente: Estructuras de datos