HOWTO · Python
Listar entornos virtuales en Python
En este artículo, discutimos qué es un entorno virtual en Python y algunos comandos para enumerarlos.
En esta página
Usa lsvirtualenv o workon sin argumentos para consultar los entornos gestionados por virtualenvwrapper. Para los entornos de Conda, usa conda env list. No hace falta activar un entorno para incluirlo en el listado, pero el gestor correspondiente debe estar disponible en la terminal.
Listar entornos virtuales en Python
Python no tiene un comando universal que muestre todos los entornos de tu equipo. El método adecuado depende de cómo los hayas creado y organizado:
| Herramienta de entorno | Método para listar | Alcance |
|---|---|---|
| virtualenvwrapper | lsvirtualenv o workon |
Entornos del directorio WORKON_HOME configurado |
| Conda | conda env list |
Entornos conocidos por la instalación actual de Conda |
venv o virtualenv sin gestor |
Revisar los directorios donde los creaste | No hay un registro compartido de todos los entornos |
Un entorno virtual proporciona a cada proyecto su propio entorno de Python y sus paquetes instalados. Por ejemplo, Project1 y Project2 pueden usar versiones distintas de NumPy sin tener que modificar repetidamente una única instalación compartida. Esto reduce los conflictos entre dependencias, aunque aun así se pueden instalar paquetes incompatibles dentro de un mismo entorno.
Para encontrar entornos creados con venv sin un gestor, revisa tus directorios de proyecto y busca carpetas como .venv. El archivo pyvenv.cfg puede servir como indicio, pero su mera presencia no demuestra que el entorno siga funcionando.
Este ejemplo autónomo en Python crea dos entornos temporales, muestra sus nombres y los elimina al terminar. Solo busca en el directorio temporal contenedor e imprime project1 y project2 en líneas separadas.
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
from pathlib import Path
from tempfile import TemporaryDirectory
import venv
with TemporaryDirectory() as directory:
root = Path(directory)
for name in ("project1", "project2"):
venv.EnvBuilder(with_pip=False).create(root / name)
for folder in sorted(root.iterdir()):
if folder.is_dir() and (folder / "pyvenv.cfg").is_file():
print(folder.name)
project1
project2
Para revisar tus propios entornos, usa el directorio contenedor que ya conozcas en lugar de crear entornos temporales. Este método, basado en buscar un archivo marcador, sirve para directorios de tipo venv; para los entornos de Conda, usa el comando de listado de Conda.
Listar entornos con virtualenvwrapper
El comando lsvirtualenv forma parte de virtualenvwrapper, un conjunto de herramientas de shell para organizar entornos creados con virtualenv. Instalar solo virtualenv no proporciona los comandos de este conjunto de herramientas.
Para configurar Bash en Linux o macOS, sigue la guía oficial de instalación e inicialización del shell de virtualenvwrapper. Estos son los pasos básicos:
- Si hace falta, instala las herramientas con
python3 -m pip install virtualenv virtualenvwrapperdesde una instalación de Python que permita instalar paquetes con pip. - Elige un directorio contenedor compartido; por ejemplo, configura
export WORKON_HOME="$HOME/.virtualenvs"y créalo conmkdir -p "$WORKON_HOME". - Busca el script instalado
virtualenvwrapper.shy cárgalo en el shell actual consource /actual/path/to/virtualenvwrapper.sh; sustituye la ruta del ejemplo por la ubicación donde se instaló. - Ejecuta
lsvirtualenvo, para obtener una lista breve de nombres,lsvirtualenv -b. No hace falta crear otro entorno para listar los existentes. Si necesitas crear un entorno gestionado, usamkvirtualenv vEnv1.
La referencia oficial de comandos describe lsvirtualenv y sus opciones de listado, así como workon para listar o activar entornos.
Estas instrucciones de configuración no se han ejecutado y requieren que las herramientas estén instaladas y que el shell sea compatible. La instalación por sí sola no inicializa el shell actual. Si quieres disponer de estos comandos en futuras sesiones, añade la configuración del directorio y la carga del script al archivo de inicio del shell correspondiente. Las versiones nativas para Windows tienen instrucciones distintas; no des por hecho que esta secuencia de Bash sirve para el Símbolo del sistema o PowerShell.
Si el comando no está disponible, comprueba la instalación y la inicialización del shell. Si se ejecuta, pero no muestra entornos, revisa WORKON_HOME: en Bash, usa printf '%s\n' "$WORKON_HOME" y luego ls -la "$WORKON_HOME" para inspeccionar el directorio configurado.
Configura WORKON_HOME con la ruta del directorio contenedor de las carpetas de entorno, no con la ruta de un entorno individual. El valor predeterminado depende de la plataforma, la versión adaptada y la configuración; un directorio de Windows llamado Envs no es universal. Cambiar esta variable modifica dónde busca el conjunto de herramientas, pero no mueve los entornos existentes ni encuentra carpetas de proyecto que estén en otras ubicaciones.
Listar entornos de Conda
Si creaste los entornos con conda, ejecuta conda env list en una terminal donde Conda esté disponible, por ejemplo, en un shell inicializado o en Anaconda Prompt. Conda está disponible en distribuciones como Anaconda y Miniconda.
Las alternativas conda info --envs y conda info -e muestran el mismo listado de entornos; consulta la referencia oficial de conda env list y las opciones de conda info. El listado indica las ubicaciones de los entornos y, por lo general, sus nombres; un asterisco marca el entorno activo. Los entornos creados en rutas personalizadas pueden aparecer identificados principalmente por su ruta. Los nombres y las ubicaciones exactos dependen de la instalación.
Puedes listar los entornos sin crear otros. Si necesitas uno para un proyecto nuevo, conda create --name vEnv2 python crea un entorno con nombre que incluye Python; sustituye el nombre por el que quieras usar. Esta instrucción no se ha ejecutado, depende de la configuración y puede descargar paquetes y solicitar confirmación.
El listado de Conda no busca todos los entornos de venv ni los de virtualenvwrapper. Si no aparece un entorno de Conda esperado, comprueba que estés usando la instalación de Conda y la cuenta de usuario correctas. Si el comando no está disponible, abre la terminal de la distribución o inicializa Conda para tu shell antes de volver a intentarlo. Estos comandos del gestor no se han ejecutado aquí; no se afirma ningún resultado de una sesión concreta.
Listar entornos con workon
El comando workon también forma parte de virtualenvwrapper. Después de completar la configuración anterior, ejecuta workon sin argumentos para listar los entornos disponibles en WORKON_HOME. Al mostrarlos, no activa cada entorno.
Al añadir un nombre, cambia la operación: workon vEnv1 activa ese entorno gestionado en el shell actual. Sustituye vEnv1 por un nombre de la lista. Esta instrucción de activación no se ha ejecutado y requiere que exista un entorno gestionado con ese nombre.
Si ni workon ni lsvirtualenv muestran un entorno, comprueba la configuración del directorio que comparten antes de recrear nada. Una carpeta creada con virtualenv vEnv1 en un directorio de proyecto cualquiera no aparece automáticamente en el listado del conjunto de herramientas. Usa el método de listado que corresponda al gestor y a la ubicación que utilizaste.