
Haverá muitos ambientes virtuais no meu computador e eu gostaria de ter um local onde todos eles estivessem armazenados. De alguma forma $HOME
, os subdiretórios não parecem bons; muito exposto. Alguma sugestão ou justificativa por que estou pensando errado?
Estou pensando em /var/venv/
. Alguma ideia?
Responder1
Para venvs, você provavelmente os desejará em um subdiretório de $HOME para evitar problemas com restrições de segurança em dispositivos ou contêineres como o docker.
Observe as restrições neste arquivo:
/etc/apparmor.d/abstractions/python
Em teoria, você poderia colocá-los em /opt, mas os venvs são realmente específicos do usuário e são esperados no diretório inicial dos usuários. Local não é uma opção devido a outras restrições de distribuição e ao fato de que /usr é oficialmente considerado compartilhado em uma rede pelo LSB.
Pessoalmente, sigo uma versão modificada da estrutura golang.
~build/
+$language/
+bin/
| venv/
| |---Python2.7
| +---Python3.6
+pkg
+src/
|
+--- my_work/..
| |---repo1
| +---other_project
|
+-- external-repo.com/..
Isso facilita a localização e movimentação de conteúdo e é compatível com as restrições impostas pelos modelos de segurança, cgroups e outras restrições que se tornarão mais críticas à medida que os contêineres ganharem popularidade.
Lembre-se de que venvs foi originalmente planejado para estar contido no diretório de projetos. Embora a realidade das dependências principais do sistema operacional e as principais alterações de versão tenham aumentado seu uso, ainda é preferível mantê-los o mais próximo possível do pacote, processo ou usuário individual.