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.
También te puede interesar
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
| Sistema | Orden |
|---|---|
| Linux y macOS | source .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.
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.
.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.