如何在同一台服务器上运行两个 Django 版本?

Lia*_*iam 4 linux python django mod-wsgi apache-2.2

我有两个网络应用程序。一个是使用 Django 1.0 开发的,另一个是使用 Django 1.4 开发的。如何使用两个版本的 django 在同一个 apache2 服务器中运行这两个应用程序?有人告诉我一些关于 virtualenv 的事情......我正在使用 mod_wsgi。

谢谢

Den*_*oek 5

你绝对应该使用 virtualenv。

这是检查是否已经安装了 virtualenv 的方法:

$ virtualenv --version
Run Code Online (Sandbox Code Playgroud)

如果你没有安装 virtualenv,你可以像这样安装它:

$ pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

如果这给你一个错误,你可能还没有 pip。您可以使用以下方法安装它:

$ easy_install pip
Run Code Online (Sandbox Code Playgroud)

安装 virtualenv 后,您可以创建单独的虚拟 Python 环境,每个 Django 安装一个,如下所示:

$ virtualenv env
Run Code Online (Sandbox Code Playgroud)

我建议在每个应用程序的项目文件夹中运行此命令。如果这样做,您将获得一个名为“env”的文件夹,其中将包含虚拟 Python 环境。每次要开始使用虚拟环境时,都可以发出以下命令:

$ source env/bin/activate
Run Code Online (Sandbox Code Playgroud)

您的提示应通过如下所示指示您正在运行环境:

(env)$
Run Code Online (Sandbox Code Playgroud)

您可以通过键入以下内容离开 virtualenv:

(env)$ deactivate
Run Code Online (Sandbox Code Playgroud)

如果您已经走到这一步,您可以开始安装特定于环境的 Python 包版本,如下所示(在激活的环境中):

(env)$ pip install Django==1.0
Run Code Online (Sandbox Code Playgroud)

这将在当前虚拟环境中安装 Django 1.0 版。您可以通过发出以下命令来查看它是否有效:

(env)$ pip freeze
Run Code Online (Sandbox Code Playgroud)

这应该导致类似:

Django==1.0-final
wsgiref==0.1.2
Run Code Online (Sandbox Code Playgroud)

您现在可以停用这个环境,激活另一个环境,然后像这样安装 Django 1.4:

(env)$ pip install Django==1.4
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!