使用 VirtualEnv 集中安装 Django

Centralized Django Installations with VirtualEnv

我有一个服务器 运行 几个不同的 Django 网站,运行 不同版本的 Django。昨天,Django issued security updates for 1.8 and 1.9。这意味着,为了确保一切安全,我必须访问每个网站并更新 Django 的版本,即 运行.

由于 Django 在版本控制方面做得很好(即重大更改发生在次要版本之间,例如 1.8-1.9,但不会发生在版本之间,例如 1.9.2-1.9.4),看来我应该能够为每个次要版本(1.7、1.8、1.9 等)安装中央 Django

有没有办法让 VirtualEnv 以特定安装为目标,这样我就可以在一个安装中拥有所有网站 运行 Django 1.8 点,同样适用于 1.9?

可以采用的一种方法是从 site-packages 目录对 django 进行符号链接。不过,这似乎有些粗略。

我自己呢?我只是安装 SaltStack, since you can manage virtualenvs with it

一种解决方案是使用来自 virtualenvwrapper 的 add2virtualenv

简单地,为共享的 django 版本创建一些 virtualenv(当然,一个 django 主要版本一个 virtualenv)并在每个 virtualenvs 上调用命令:

add2virtualenv /path/to/shared/virtualenv/lib/python3.4/site-packages

将共享 virtualenv 的路径(以及 python 版本,如有必要)替换为您要使用的路径。

add2virtualenv永久生效,激活virtualenvwrapper后无需再次调用

这不就是requirements.txt的目的吗?您可以将 Django 的版本指定为“>=1.8,<1.9”,那么您知道升级将始终安装最新的 1.8 错误修复版本,但永远不会安装 1.9。