¿Dónde poner entornos virtuales?

¿Dónde poner entornos virtuales?

Habrá muchos entornos virtuales en mi computadora y me gustaría tener un lugar donde estén todos almacenados. De alguna manera $HOMElos 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.

información relacionada