Para os vovs, você provavelmente os desejará em um subdiretório de $ HOME para evitar problemas com restrições de segurança em apparmor ou em 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 o fato de / usr ser assumido oficialmente como compartilhado em uma rede pelo LSB.
Eu pessoalmente sigo uma versão modificada da estrutura do 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 a movimentação de conteúdo e é compatível com as restrições impostas pelos modelos de segurança; cgroups outras restrições que se tornarão mais críticas à medida que os contêineres ganharem popularidade.
Lembre-se de que os venvs eram originais e deveriam estar contidos no diretório de projetos. Embora as realidades nas principais dependências do sistema operacional e as principais alterações de versão tenham aumentado seu uso, ainda é preferível mantê-las o mais próximo possível do pacote, processo ou usuário individual.