2010-08-11 65 views
5

我最近开始使用virtualenvwrapper创造的Django的virtualenv部署配置

mkdir ~/.virtualenvs 
mkvirtualenv example.com 

Virtualenvwarpper自然而然创建在〜/ .virtualenv 名为example.com一个的virtualenv,所以这是对所有virtualenvs中心容器。 比后,我安装Django和通过PIP 一些其他的包,我的网站是在

/srv/www/example.com/public_html/ 

我必须把我的网站 〜/ .virtualenv/example.com 如果不是我怎么可以用我的example.com virtualenv与我的网站在/srv/www/example.com/public_html下。 你能告诉我一个用于这个部署的apache mod_wsgi配置吗? 感谢

回答

4

阅读:

http://code.google.com/p/modwsgi/wiki/VirtualEnvironments

这可能是不够的只使用site.addsitedir(),因为它不处理某些排序问题。你最好使用mod_wsgi提供的配置指令/选项来添加它们。否则,如果排序成为问题,则需要将代码添加到WSGI脚本中,以便根据需要重新排序sys.path。

+0

这对我来说很好,但直到我意识到我确实需要这两个部分,即使我想用我的基准virtualenv作为我的应用程序。因此,您必须在全局apache配置中设置“WSGIPythonHome/usr/local/pythonenv/BASELINE”,然后您还必须将site.addsitedir命令添加到.wsgi脚本的顶部,即使您打算使用基线。该文档引用2.5的Python库,但他们现在可能为2.6:site.addsitedir('/ usr/local/pythonenv/BASELINE/lib/python2.6/site-packages') – 2012-06-13 18:00:55

+0

你应该不需要做在这两个地方。如果你必须这样做,还有其他的错误。 – 2012-06-14 06:35:15

2

在你的WSGI脚本:

import site 
site.addsitedir('/home/username/.virtualenvs/example.com/lib/python2.5/site-packages') 

(调整以适合您的Python版本等)

+0

这还不够。见格雷厄姆的答案。 – 2011-10-08 12:54:02