virtualenvs应该在哪里投入生产?

wgp*_*ubs 8 python django production virtualenv python-3.x

使用virtualenv(或virtualenvwrapper)时,建议的做法是将所有虚拟环境组合在一起...例如〜/ .virtualenvs

但是,我在阅读大量关于部署Django应用程序的文章时已经注意到,建议似乎是将您的虚拟环境放在单个Web应用程序的根目录下...例如在/ srv/www/example中. COM/VENV.

我的问题是:

  1. 为什么?

  2. 如果我走这条路或者另一条路是否重要?

  3. 并且推荐的方式是另一种方式吗?

Stv*_*vnW 2

这是我的想法:

在公共文件夹中分组的参数

  • 对给定机器上的多个 venv 进行更清晰的管理。很好的工具,支持检查可用的、添加新的、清除旧的等。
  • 在多个项目中共享一个或多个 venv 时更明智(且更节省空间)
  • 允许使用一些不错的功能,例如自动完成 venv 名称

与项目保持一致的论据

  • 明确 venv 和项目之间的关系。消除任何歧义并减少出错的可能性,因为为项目运行错误的 venv 的可能性很小(这并不总是立即显而易见)。
  • 当 venv 和项目之间存在一对一关系时更有意义
  • 当使用不同的帐户进行团队工作时,可能是首选方法。
  • 跨相同主机部署时更简单;(只是rsync整个项目)。没有什么可以阻止您在公共文件夹中使用 venv 来执行此操作,但部署一棵树感觉更自然。
  • 更容易对整个应用程序进行沙箱处理。

对于更多实验/早期阶段的工作,我倾向于选择前者,对于已部署的项目,我倾向于选择后者。