Alguien me acaba de preguntar cómo enumerar todos los entornos virtuales creados con venv
.
Sólo podía pensar en la búsqueda de pyvenv.cfg
archivos para encontrarlos. Algo como:
from pathlib import Path
venv_list = [str(p.parent) for p in Path.home().rglob('pyvenv.cfg')]
Esto podría incluir potencialmente algunos falsos positivos. ¿Hay una mejor manera de enumerar todo el entorno virtual creado con venv
?
NB: la pregunta es sobre venv
concretamente, NO Anaconda, virtualenv, etc.
En Linux / macOS esto debe obtener la mayor parte de ella
find ~ -d -name "site-packages" 2>/dev/null
Buscando directorios debajo de su casa que se denominan "site-packages", que es donde venv
pone sus cosas pip-instalado. los cortes / dev / null mordió el chattiness de cosas que no tienen permiso para estudiar.
O se puede ver en los detalles de un archivo esperado en particular. Por ejemplo, activate
tiene nondestructive
como contenido. Luego hay que buscar un patrón de coincidencias Venv pero no anaconda y el resto.
find ~ -type f -name "activate" -exec egrep -l nondestructive /dev/null {} \; 2>/dev/null