虚拟环境放在哪里?

虚拟环境放在哪里?

我的电脑上会有很多虚拟环境,我想有一个地方来存储它们。不知何故$HOME,子目录似乎不太好;太暴露了。有什么建议或理由可以解释我为什么想错了吗?

我正在想/var/venv/。有什么想法吗?

答案1

对于 venvs,您可能希望将它们放在 $HOME 的子目录中,以避免出现 apparmor 或 docker 等容器中的安全限制问题。

请注意此文件中的限制:

/etc/apparmor.d/abstractions/python

理论上你可以把它们放在 /opt 中,但 venvs 实际上是用户特定的,并且应该放在用户主目录中。由于其他分发限制以及 /usr 正式被 LSB 假定在网络上共享的事实,本地不是一个选项。

我个人遵循的是golang结构的修改版本。

~build/
       +$language/
                +bin/
                |    venv/
                |      |---Python2.7
                |      +---Python3.6
                +pkg
                +src/
                    |
                    +--- my_work/..
                    |          |---repo1
                    |          +---other_project
                    |
                    +-- external-repo.com/..

这使得查找和移动内容变得容易,并且与安全模型、cgroups 设置的限制兼容,随着容器的普及,这些限制将变得更加重要。

请记住,venvs 最初是打算包含在项目目录中的。尽管核心操作系统依赖性和主要版本更改的现实情况增加了它们的使用,但最好还是尽可能将它们放在靠近单个包、进程或用户的位置。

相关内容