Creación de entornos virtuales de Python (venv)

Un entorno virtual es un espacio de ejecución independiente de Python que posee su propio intérprete, paquetes instalados y configuración, completamente aislado del entorno global del sistema.

Un entorno virtual de Python (Virtual Environment) es un entorno de ejecución independiente que te permite crear entornos de Python aislados para diferentes proyectos en la misma máquina.

Diferentes proyectos pueden ejecutarse en paralelo en sus propios entornos virtuales sin interferirse entre sí.

Cada entorno virtual tiene lo siguiente:

  • Intérprete de Python
  • Paquetes/bibliotecas instalados
  • Variables de entorno
Instalación global (conflictos de versiones) ✓ Entorno virtual (completamente aislado) Entorno global de Python site-packages (compartido por todos los proyectos) Proyecto A Necesita Django 3.2 Proyecto B Necesita Django 4.0 Conflicto de versiones, no pueden coexistir Proyecto A .venv Instala Django 3.2 de forma independiente Proyecto B .venv Instala Django 4.0 de forma independiente

El entorno virtual permite que cada proyecto tenga su propio espacio de dependencias independiente, eliminando por completo los conflictos de versiones.

¿Por qué necesitas entornos virtuales?

  • Aislamiento de proyectos: diferentes proyectos pueden usar distintas versiones de Python y bibliotecas de terceros
  • Evitar la contaminación: los paquetes instalados solo afectan al entorno actual, no contaminan el Python global
  • Dependencias controlables: a través derequirements.txtregistro y reproducción precisos del entorno
  • Pruebas seguras: puedes actualizar o probar nuevos paquetes con tranquilidad, sin afectar a otros proyectos

Ejemplo de escenario:

  • El proyecto A necesita la versión Django 3.2
  • El proyecto B necesita la versión Django 4.0
  • Si se instalan de forma global en el sistema, las dos versiones entran en conflicto

Herramientas de entornos virtuales

Nombre de la herramienta Tipo Soporte de versiones de Python Método de instalación Características Escenario de uso
venv(recomendado) Módulo integrado ≥ 3.3 Sin instalación, integrado Ligero, recomendado oficialmente, fácil de usar Desarrollo general, proyectos cotidianos
virtualenv Herramienta de terceros 2.x y 3.x pip install virtualenv Rico en funciones, compatible con múltiples versiones Requiere compatibilidad con versiones anteriores o funciones avanzadas
conda Incluido con Anaconda 2.x y 3.x Se instala con Anaconda/Miniconda Gestión de paquetes para varios lenguajes, ecosistema de ciencia de datos Proyectos de ciencia de datos y aprendizaje automático

Si se necesita soporte para versiones más antiguas, se puede usar virtualenv (compatible con Python 2):

pip install virtualenv  # 非必须,venv 通常够用

En este capítulo usaremosvenvcrear y gestionar entornos virtuales.


Crear un entorno virtual

Python 3.3+ incorpora de serievenvel módulo, sin necesidad de instalación adicional.

Flujo de uso

Descripción general del flujo de uso

1
Crear
python -m venv
2
Activar
activate
3
Instalar dependencias
pip install
4
Desarrollo y depuración
python / run
5
Desactivar
deactivate
Box 1: Crear (púrpura) Crear el entorno python -m venv Box 2: Activar (verde azulado) Activar source activate Box 3: Instalar (verde azulado) Instalar dependencias pip install Box 4: Desarrollo (verde azulado) Desarrollo y ejecución python / test Box 5: Desactivar (gris) Desactivar deactivate Durante la activación: los comandos pip y python apuntan al entorno virtual, sin afectar al global.

Comprueba la versión de Python:

python3 --version
# 或者
python --version

Crea un entorno virtual:

# 基本语法
python3 -m venv 环境名称

Por ejemplo, para crear un.venventorno virtual llamado:

Ejemplo

# Entrar en el directorio del proyecto
mkdir my_project && cd my_project

# Crear el entorno virtual (nombrarlo '.venv' es una convención común)
python3 -m venv .venv

Explicación de parámetros:

  • -m venv: usar el módulo venv
  • .venv: el nombre del entorno virtual (se puede personalizar)

Estructura de directorios después de la creación

.venv/
├── bin/            # 在 Unix/Linux 系统上
│   ├── activate    # 激活脚本
│   ├── python      # 环境 Python 解释器
│   └── pip         # 环境的 pip
├── Scripts/        # 在 Windows 系统上
│   ├── activate    # 激活脚本
│   ├── python.exe  # 环境 Python 解释器
│   └── pip.exe     # 环境的 pip
└── Lib/            # 安装的第三方库

Activar el entorno virtual

Después de la activación, los comandos python y pip del terminal actual apuntarán automáticamente a ese entorno virtual; todas las operaciones de instalación se realizan en un espacio aislado.

macOS / Linux

source .venv/bin/activate

Windows(CMD / PowerShell)

.venv\Scripts\activate

Si la activación se realiza correctamente, el indicador de la línea de comandos normalmente mostrará el nombre del entorno:

(.venv) $

Comprueba si la activación ha surtido efecto:

# 查看 Python 路径,应指向 .venv 目录
which python       # macOS/Linux
where python       # Windows
→ /path/to/my_project/.venv/bin/python

Usar el entorno virtual

Instalar paquetes

En el entorno activado, los paquetes instalados con pip solo afectan al entorno actual:

pip install package_name

Por ejemplo:

# 安装单个包(如Django)
(.venv) pip install django==3.2.12

# 安装多个包
(.venv) pip install requests pandas

# 安装速度慢?使用国内镜像
(.venv)  pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple

Ver los paquetes instalados

(.venv) pip list
Package    Version
---------- -------
Django     3.2.12
pip        21.2.4

# 查看某个包的详情
(.venv) pip show django

# 升级包
(.venv) pip install --upgrade pip

Exportar dependencias

Usar requirements.txt para registrar y reproducir el entorno del proyecto es una práctica estándar en la colaboración en equipo:

(.venv) pip freeze > requirements.txt

Ejemplo de contenido del archivo requirements.txt:

Django==3.2.12
requests==2.26.0
pandas==1.3.3

Instalar dependencias desde un archivo

(.venv) pip install -r requirements.txt

Sugerencia:Agrega .venv/ a .gitignore y solo envía requirements.txt. El entorno virtual ocupa mucho espacio y está vinculado a rutas; no debe incluirse en el control de versiones.


Salir del entorno virtual

Cuando hayas terminado el trabajo, puedes salir del entorno virtual:

deactivate

Después de salir, el indicador de la línea de comandos vuelve a la normalidad, y los comandos Python y pip usarán la versión global del sistema.


Eliminar el entorno virtual

Para eliminar un entorno virtual, solo tienes que borrar el directorio correspondiente:

# 确保已退出环境
deactivate

Eliminar el entorno virtual

Un entorno virtual es, en esencia, un directorio normal; al eliminar el directorio, se elimina por completo:

macOS / Linux

rm -rf .venv

Windows

rmdir /s /q .venv
Nota:: antes de eliminar, ejecuta primerodeactivatesalir del entorno, de lo contrario el shell actual conservará variables de entorno no válidas.

Ejemplo de proyecto real

Supón que estás desarrollando un proyecto Django:

Ejemplo

# 1. Crear y entrar en el directorio del proyecto
mkdir my_site && cd my_site

# 2. Crear el entorno virtual y activarlo
python3 -m venv .venv
source .venv/bin/activate    # Windows: .venv\Scripts\activate

# 3. Instalar Django y registrar las dependencias
(.venv) pip install django==4.2
(.venv) pip freeze > requirements.txt

# 4. Inicializar el proyecto Django
(.venv) django-admin startproject config .

# 5. Realizar la migración de la base de datos e iniciar el servidor de desarrollo
(.venv) python manage.py migrate
(.venv) python manage.py runserver

# 6. Finalizar el desarrollo y salir del entorno
(.venv) deactivate

Uso avanzado

Especificar la versión de Python

Si tienes varias versiones de Python instaladas, puedes especificar cuál usar para crear el entorno virtual:

python3.8 -m venv .venv  # 使用 Python 3.8

Crear un entorno sin pip

python -m venv --without-pip .venv

Crear un entorno virtual que herede paquetes del sistema

python -m venv --system-site-packages .venv

Preguntas frecuentes

1. ¿Por qué mi entorno virtual no tiene el script activate?

Asegúrate de que estás usando la ruta correcta:

  • Windows: Scripts\activate
  • Unix/Linux: bin/activate

2. ¿Cómo saber si estoy en un entorno virtual?

Comprueba si el indicador de la línea de comandos tiene el prefijo con el nombre del entorno, o ejecuta:

which python

3. La instalación de paquetes es lenta

Usa fuentes espejo nacionales:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name

Comprueba si la ruta del intérprete de Python está en el directorio del entorno virtual.

4. ¿Se puede mover de ubicación un entorno virtual?

No se recomienda. En los scripts y archivos de configuración del entorno virtual hay rutas absolutas codificadas; si lo mueves, dejarán de funcionar. Si necesitas migrarlo, la forma más sencilla es recrear el entorno yrequirements.txtrestaurar las dependencias.

5. ¿Cuánto espacio ocupa un entorno virtual?

Un entorno vacío ocupa unos 20–50 MB, y aumenta a medida que se instalan más paquetes. Los proyectos de ciencia de datos (NumPy, Pandas, PyTorch) pueden llegar a varios GB. Es una buena práctica limpiar periódicamente los entornos virtuales que ya no se usan.


Mejores prácticas

  1. Un entorno independiente para cada proyecto: evita que las dependencias de distintos proyectos se afecten entre sí
  2. Usa un nombre uniforme.venv: la mayoría de los IDE (VS Code, PyCharm) pueden reconocerlo automáticamente
  3. Actualización oportunarequirements.txt: cada vez quepip installtermines, exporta de forma sincronizada
  4. Ignora el entorno virtual en el control de versiones: en.gitignoreagregar en.venv/
  5. Limpia periódicamente los entornos en desuso: libera espacio en disco
  6. Fija los números de versión en producción:requirements.txt: escribe explícitamente==la versión, para evitar actualizaciones inesperadas
# .gitignore 推荐配置
.venv/
__pycache__/
*.pyc
.env
*.egg-info/
Otras extensiones