是否建议 django 生产服务器使用 viralenv?

我一直在使用 viralenv 在 localhost 中测试我的应用程序,因为我有一个独立的环境,可以安全地测试软件包的新版本。

现在,我不得不将我的应用程序部署到生产服务器上。我想知道我是否也应该使用虚拟服务器的生产或只是普通的安装应该做。因为它是生产服务器,所以我总是可以使用在 dev 服务器中测试的正确版本(在 Virtual-env 下)

21017 次浏览

如果你想在网络服务器上运行多个项目,我会这样做。一旦有了两个项目,将来任何 Python 包的升级都有可能破坏另一个站点。

我认为当 uwsgi 通过 vhost 标志直接支持它时,它是一个完全支持的生产解决方案,这是一个很好的迹象: http://projects.unbit.it/uwsgi/wiki/VirtualHosting

是的,我认为应该使用 viralenv 将其部署到生产环境中。它使事情变得更简单、更清晰,特别是如果您计划部署多个服务,例如基于 django 的网站或其他 Python 项目。您不希望它们中的每一个都使用自己的包来污染全球的 Python 环境。

我认为 viralenv 将帮助您清晰地管理所有依赖项。

要更新你的生产环境,你所需要做的就是:

pip -r name_of_your_requirements_file.txt

我在生产中使用 viralenvs,您可以使用 uWSGI 为应用程序提供服务,Cherokee 作为 Web 服务器。

要在生产环境中使用 viralenv,需要将它的路径添加到 PYTHONPATH。

例如,如果您的 env 具有路径“/home/www/my _ project/env/”,那么添加的路径应该是:

/home/www/env/lib/python2.7/site-packages/

您可以通过许多不同的方式来设置它,但是如果您正在通过 manage.py 生成 FCGI 或 uWSGI 接口,只需在 manage.py 的顶部(在其余部分之前)添加以下内容:

import os
my_virtualenv_path = "/home/www/my_project/env/lib/python2.7/site-packages/"
# Add it to your PYTHONPATH
os.path.append(my_virtualenv_path)

您可以根据自己的设置调整它,以防您还可以在 shell 中执行以下操作:

export PYTHONPATH:$PYTHONPATH:/home/www/my_project/env/lib/python2.7/site-packages/

您还需要将包含 setings.py 文件的目录添加到 PYTHONPATH 中,这样 Django 就能够发现它。只要以类似的方式进行就可以了。

是否建议 django 生产服务器使用 viralenv?

是的,它使您的项目不依赖于系统环境的某些方面,而且它还允许您使部署过程更加清晰和可配置。

我使用布料、 pip 和 viralenv 来部署所有 Django 项目。

在大多数情况下,我会同意最好有一个 viralenv,即使它似乎并不需要它,当您第一次设置服务器。也就是说,如果您正在使用某种云服务,并在短时间内为特定任务启动服务器,那么我不认为使用 Virtual alenv 有什么意义。

在开发和生产部署中使用 Docker 容器现在非常流行,所以如果您正在考虑遵循这一趋势,那么您将不再需要 Virtual alenv。