Cómo crear y activar un entorno virtual Python

Aprenda a crear, activar y administrar un entorno virtual de Python utilizando el módulo venv integrado. Mantenga las dependencias de su proyecto aisladas y limpias.

Pruebe esta solución en el Editor

Descripción general

Al desarrollar aplicaciones Python, a menudo instalarás paquetes de terceros usando pip. Sin un entorno virtual, estos paquetes se instalan globalmente en el entorno Python de su sistema. Esto puede generar conflictos rápidamente si diferentes proyectos requieren diferentes versiones de la misma biblioteca (por ejemplo, el Proyecto A necesitaDjango3.2 y el Proyecto B necesitaDjango5.0).

Un entorno virtual es un directorio aislado que contiene su propio ejecutable de Python y su propio conjunto de paquetes instalados. Al crear un entorno virtual para cada uno de sus proyectos, se asegura de que las instalaciones de paquetes no interfieran con otros proyectos o con la configuración de Python en todo el sistema. Esta es una mejor práctica fundamental para el desarrollo de Python.

En elPython 3moderno, la biblioteca estándar incluye el módulo `venv`, que maneja entornos virtuales sin requerir herramientas externas. El ciclo de vida de un entorno virtual implica crear el directorio del entorno, activarlo en su sesión de terminal activa, instalar dependencias y, finalmente, desactivarlo cuando haya terminado.

Código y salida de ejecución

Esta simulación muestra los comandos de terminal utilizados para crear, activar, instalar paquetes y desactivar un entorno virtual en macOS/Linux y Windows.

commands_macos_linux = """
# 1. Create a virtual environment named 'venv'
$ python3 -m venv venv

# 2. Activate the virtual environment
$ source venv/bin/activate

# 3. Verify activation (will show the path to the virtual env's python)
(venv) $ which python

# 4. Deactivate when done
(venv) $ deactivate
"""

commands_windows = """
# 1. Create a virtual environment named 'venv'
> python -m venv venv

# 2. Activate the virtual environment in Command Prompt
> venv\Scripts\activate

# 3. Or activate in PowerShell
> .\venv\Scripts\Activate.ps1

# 4. Deactivate when done
(venv) > deactivate
"""

print("macOS & Linux terminal commands:")
print(commands_macos_linux.strip())
print("\nWindows terminal commands:")
print(commands_windows.strip())
Salida terminal
macOS & Linux terminal commands:
# 1. Create a virtual environment named 'venv'
$ python3 -m venv venv

# 2. Activate the virtual environment
$ source venv/bin/activate

# 3. Verify activation (will show the path to the virtual env's python)
(venv) $ which python

# 4. Deactivate when done
(venv) $ deactivate

Windows terminal commands:
# 1. Create a virtual environment named 'venv'
> python -m venv venv

# 2. Activate the virtual environment in Command Prompt
> venv\Scripts\activate

# 3. Or activate in PowerShell
> .\venv\Scripts\Activate.ps1

# 4. Deactivate when done
(venv) > deactivate

Implementación paso a paso

  • Ejecute python -m venv <env_name> en la terminal de su proyecto para generar los archivos de entorno.
  • Active el entorno usando source <env_name>/bin/activate (macOS/Linux) o <env_name>\Scripts\activate (Windows).
  • Instale los paquetes necesarios usando pip install para asegurarse de que estén aislados en este directorio de proyecto.
  • Escriba desactivar en el shell del terminal para salir del entorno virtual una vez que termine de trabajar.

Preguntas frecuentes

¿Dónde debo crear la carpeta del entorno virtual?

Créelo directamente en el directorio raíz de su proyecto. Evite enviar la carpeta del entorno virtual (por ejemplo, venv/) a Git agregándola a su archivo .gitignore.

¿Qué significa realmente activar un entorno virtual?

La activación actualiza temporalmente la variable PATH de su shell, apuntándola a la carpeta bin o Scripts del entorno virtual para que se ejecuten los ejecutables locales de python y pip en lugar de los de todo el sistema.

Temas relacionados

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.