
Habrá muchos entornos virtuales en mi computadora y me gustaría tener un lugar donde estén todos almacenados. De alguna manera $HOME
los subdirectorios no parecen ser buenos; demasiado expuesto. ¿Alguna sugerencia o justificación de por qué estoy pensando mal?
Estoy pensando en /var/venv/
. ¿Alguna idea?
Respuesta1
Para venvs probablemente los querrás en un subdirectorio de $HOME para evitar problemas con restricciones de seguridad en aplicaciones o contenedores como Docker.
Tenga en cuenta las restricciones en este archivo:
/etc/apparmor.d/abstractions/python
En teoría, podría colocarlos en /opt, pero los venvs son realmente específicos del usuario y se esperan en el directorio de inicio de los usuarios. Local no es una opción debido a otras restricciones de distribución y al hecho de que se supone oficialmente que /usr es compartido en una red por el LSB.
Personalmente sigo una versión modificada de la estructura de golang.
~build/
+$language/
+bin/
| venv/
| |---Python2.7
| +---Python3.6
+pkg
+src/
|
+--- my_work/..
| |---repo1
| +---other_project
|
+-- external-repo.com/..
Esto facilita la búsqueda y el movimiento de contenido y es compatible con las restricciones impuestas por los modelos de seguridad, además de agrupar otras restricciones que se volverán más críticas a medida que los contenedores ganen popularidad.
Recuerde que los venvs originalmente estaban destinados a estar contenidos en el directorio de proyectos. Si bien las realidades sobre las dependencias centrales del sistema operativo y los cambios importantes en las versiones han aumentado su uso, sigue siendo preferible mantenerlos lo más cerca posible del paquete, proceso o usuario individual.