Venv
VENV
venv
es la herramienta integrada de Python para trabajar con entornos virtuales.
Se incluye desde la versión 3.4.
Creacion entorno virtual
Se elige la ruta de un directorio donde se creará el entorno virtual:
Dentro del directorio elegido se crearán todos los archivos y directorios auxiliares necesarios para empezar a trabajar. En ellos se guardará el ejecutable de Python y se guardarán los paquetes a añadirse al proyecto.Es muy habitual crear el entorno virtual dentro del directorio del proyecto
en una carpeta oculta llamada venv
:
Árbol de archivos
Cuando se crea el entorno virtual se crea una estructura de archivos similar a la siguiente:
carpeta_entorno
├── bin
│ # rutinas de shell -> comando 'deactivate'
│ ├── activate
│ ├── activate.csh
│ ├── activate.fish
│ ├── Activate.ps1
│ # clientes PIP
│ ├── pip
│ ├── pip3
│ ├── pip3.13
│ # enlaces simbólicos al intérprete Python global
│ ├── python -> /usr/bin/python
│ ├── python3 -> python
│ └── python3.13 -> python
│
├── include
│ └── python3.13 # (vacío)
│
├── lib
│ └── python3.13
│ └── site-packages # paquetes instalados localmente
│ ├── pip # código de paquete
│ └── pip-24.3.1.dist-info # información de paquete
│
├── lib64 -> lib
│
└── pyvenv.cfg # configuración del entorno actual
En el caso de Windows la carpeta bin
es reemplazada por la carpeta Scripts
.
El archivo de configuración pyenv.cfg
tiene un contenido como el siguiente:
home = /usr/bin
include-system-site-packages = false
version = 3.13.3
executable = /usr/bin/python3.13
command = /usr/bin/python -m venv RUTA_ENTORNO/.venv
El diagrama de árbol previo puede trazarse con el comando tree
de Bash:
Activacion entorno virtual
La activación consiste en ejecutar alguno de los scripts de nombre "activate". El script correcto dependerá de la terminal usada:
En el caso de haber creado la carpeta oculta venv
:
La activación se verifica en Bash con el comando which
:
Además se debe verificar que PIP no detecta paquetes adicionales instalados:
dando lugar a una lista como esta:El entorno virtual permanecerá activado hasta que se cierre la terminal o se desactive explícitamente con el comando deactivate
.
Instalar paquetes manualmente
Los paquetes se instalan con el comando habitual:
Hay que asegurarse primero que el entorno virtual esté activado.La lista de paquetes disponibles localmente se realiza con el comando list
:
Anotar e instalar dependencias
La versión actual de los paquetes se puede guardar en formato texto con el comando freeze:
En el ejemplo se guardan todos los nombres de paquete y sus versiones en el archivo de texto requirementsd.txt. Esta lista creada sirve para automatizar la descarga e instalación de todos los paquetes necesarios con un único comando: En el contexto de un entorno virtual se minimiza la lista de paquetes a instalar, mejorando el control sobre el proyecto y evitando instalar dependencias inútiles para el proyecto actual.Desactivar entorno virtual
El entorno virtual se desactiva fácilmente con el comando deactivate:
De esta manera se retoma el uso de los paquetes globales de manera inmediata y el intérprete de Python detectado vuelve a ser el global:Uso sin activación
El intérprete local de Python puede ser ejecutado directamente a partir de su ruta. Invocándolo directamente se ahorra el paso de activación de su entorno virtual.
Uso en Bash:
RUTA_ENTORNO/bin/python # Linux y MacOs
RUTA_ENTORNO/Scripts/python # Windows
Eliminar entorno virtual
El entorno virtual se elimina borrando los directorios auxiliares del entorno:
Eliminar entorno
Prestar atención a no incluir código del proyecto adentro del directorio del entorno virtual. De otro modo, al eliminar el entorno virtual, también se eliminaría parte del código de programa.
Referencias
PythonLand - How to Create, Activate, Deactivate, And Delete