Crear un entorno virtual en Python

Un entorno virtual es una carpeta con su propio Python y sus propios paquetes, separada del resto del sistema. Cada proyecto tiene el suyo, y así lo que instalas para uno no rompe otro. Viene incluido en Python: no hay que instalar nada.

Crearlo

python -m venv .venv

Dentro de la carpeta del proyecto. .venv es el nombre del entorno, y es el que espera casi todo el mundo, editores incluidos. En Linux y macOS puede que tengas que escribir python3. En Windows ya no hace falta pip install virtualenv, como decía la versión anterior de esta página: venv viene con Python desde la versión 3.3.

Activarlo

SistemaOrden
Linux y macOSsource .venv/bin/activate
Windows, CMD.venv\Scripts\activate
Windows, PowerShell.venv\Scripts\Activate.ps1

Al activarlo, el nombre del entorno aparece al principio de la línea de la terminal. A partir de ahí, python y pip son los del entorno.

Si PowerShell se niega a ejecutar Activate.ps1 por la política de ejecución, una vez basta con Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.

Comprobar que estás dentro

which python
python -c "import sys; print('dentro del entorno:', sys.prefix != sys.base_prefix)"
salida/trabajo/p1/.venv/bin/python
dentro del entorno: True

Si which python (o where python en Windows) apunta a la carpeta .venv, estás dentro. Si apunta a /usr/bin o similar, no lo has activado.

Instalar paquetes

pip install requests
pip list
salidaPackage            Version
------------------ ---------
certifi            2026.7.22
charset-normalizer 3.5.2
idna               3.20
pip                26.2.1
requests           2.34.2
urllib3            2.8.0

Instalaste un paquete y han entrado seis: requests y lo que necesita para funcionar. Todo queda dentro de .venv; el Python del sistema ni se entera. Por eso en Linux, donde pip fuera de un entorno da el error externally-managed-environment, dentro funciona sin problemas.

Guardar las dependencias

pip freeze > requirements.txt

pip install -r requirements.txt

La primera orden apunta en un archivo todos los paquetes con su versión exacta. La segunda, en otro ordenador o en otro entorno, los vuelve a instalar iguales.

La carpeta .venv no se sube al repositorio. Ocupa mucho, lleva rutas de tu máquina y no funciona en otra. Lo que se sube es el requirements.txt; añade .venv/ a tu .gitignore. Y si un entorno se estropea, no lo arregles: bórralo y vuelve a crearlo desde ese archivo.

Salir

deactivate

Vuelves al Python del sistema. No hace falta salir para cerrar la terminal: el entorno solo está activo en la sesión donde lo activaste.

Más información en inglés: Create a virtual environment in Python.

Todo el código se ejecutó con Python 3.14 en un contenedor limpio antes de publicar esta página; las salidas están copiadas de esa ejecución.