2010-08-11 2 views
5

Недавно я начать использовать virtualenvwrapper и создалДжанго virtualenv конфигурации развертывания

mkdir ~/.virtualenvs 
mkvirtualenv example.com 

Virtualenvwarpper автообновления создать virtualenv имени example.com под ~/.virtualenv так это центральный контейнер для всех virtualenvs. После чем я установил Django и некоторые другие пакеты через пип и мой сайт в

/srv/www/example.com/public_html/ 

ли я поставить свой сайт в ~/.virtualenv/example.com если не так, как я мог бы использовать мой example.com virtualenv с моим сайтом в /srv/www/example.com/public_html. Не могли бы вы показать мне конфигурацию apache mod_wsgi для этого развертывания? Благодаря

ответ

4

Read:

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

Это не может быть достаточно для использования только site.addsitedir(), поскольку он не имеет отношения к определенным вопросам упорядочения. Вам лучше использовать директиву/опцию конфигурации, предоставляемую mod_wsgi, чтобы добавить их. В противном случае, если заказ становится проблемой, вам нужно будет добавить код в скрипт WSGI, который будет переупорядочивать sys.path при необходимости.

+0

Это работало хорошо для меня, но только после того, как я понял, что мне нужны обе части, хотя я хочу использовать свой базовый виртуальный интерфейс для своего приложения. Поэтому вы должны установить «WSGIPythonHome/usr/local/pythonenv/BASELINE» в глобальной конфигурации apache, а затем вы также должны добавить команду site.addsitedir в начало вашего сценария .wsgi, даже если вы планируете использовать свои базовый уровень. Документы ссылаются на python libs с 2.5, но они, вероятно, теперь для вас 2.6: site.addsitedir ('/ usr/local/pythonenv/BASELINE/lib/python2.6/site-packages') –

+0

Вам не нужно это делать в обоих местах. Что-то еще не так, если вам нужно это сделать. –

2

В вашем WSGI сценарий:

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

(Adjust в соответствии с версией Python и т.д.)

+0

Этого недостаточно. См. Ответ Грэма. –