Django生产服务器是否推荐使用virtualenv?

2024-04-19 07:57:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直使用virtualenv在本地主机上测试我的应用程序,因为我已经隔离了环境,并且可以安全地测试新版本的包。

现在,我必须将我的应用部署到生产服务器。我想知道我是否也应该在生产服务器上使用virtualenv,或者只是正常的安装。因为它是生产服务器,所以我总是可以使用在dev服务器中测试的正确版本(在virtual env下)


Tags: dev版本服务器env应用程序环境virtualenv部署
3条回答

如果你认为你会在web服务器上运行多个项目,我会这样做。一旦你有了两个项目,你就有可能在将来升级任何python包,从而破坏另一个站点。

Is virtualenv recommended for django production server?

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

我使用fabric、pip和virtualenv来部署我所有的Django项目。

是的,我认为您应该使用virtualenv将其部署到生产环境中。它使事情变得更加简单和干净,特别是如果您计划部署多个服务,例如基于django的网站或其他python项目。您不希望它们中的每一个都用它们的包污染全局python环境。

我认为virtualenv将帮助您干净地管理所有依赖项。

要更新生产环境,只需执行以下操作:

pip -r name_of_your_requirements_file.txt

我在生产中使用virtualenvs,您可以使用uWSGI为应用程序提供服务,Cherokee是一个web服务器。

要在生产中使用virtualenv,需要将其路径添加到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/

您还需要将包含settings.py文件的目录添加到PYTHONPATH,以便Django能够发现它。只要以类似的方式进行。

相关问题 更多 >