virtualenvs应该在哪里投入生产?

时间:2014-04-23 23:36:38

标签: python django python-3.x virtualenv production

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

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

我的问题是:

  1. 为什么呢?

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

  3. 推荐使用另一种方法吗?

1 个答案:

答案 0 :(得分:2)

以下是我的想法:

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

  • 清洁管理给定机器上的多个venvs。支持检查哪些可用,添加新的,清除旧的等等的好工具。
  • 在多个项目中共享一个或多个venv时更明智(也更节省空间)
  • 允许使用一些很好的功能,例如自动填充venv名称

与项目保持一致的论据

  • 明确与venv和项目之间的关系。消除任何歧义,减少错误,因为项目运行错误的venv几乎没有机会(这并不总是很明显)。
  • 当venvs和项目之间存在一对一的关系时更有意义
  • 从单独的帐户组成团队时,可能是首选方法。
  • 在相同主机上部署时更直接; (仅rsync整个项目)。没有什么能阻止你在公共文件夹中使用venv这样做,但是部署单个树感觉更自然。
  • 更容易沙箱整个应用程序。

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