2010-08-11 50 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