2009-12-09 3 views
2

Когда я развертываю свои приложения, которые отлично работают с использованием тестового сервера django, я обычно получаю ошибки для каждого пакета, который я установил, используя pip install -e .... # egg = foo. Обычно я делаю это с помощью virtualenv, который помещает файлы в env/src/foo и помещает другой файл в python/site-packages (это пример django-css):Ошибки импорта Pip + WSGI

django-css.egg-link, который содержит следующие строки:

/home/pinax-0.7.1/src/django-css 
. 

как я говорю WSGI, что он должен следовать этим ссылкам, или я делаю что-то неправильно в целом.

спасибо, Philipp Wassibauer

ответ

4

Это то, что мой WSGI сценарий для Django в virtualenv выглядит следующим образом:

import os 
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' 

import site 
site.addsitedir('/path/to/virtualenv/lib/python2.6/site-packages') 

from django.core.handlers.wsgi import WSGIHandler 
application = WSGIHandler() 

Ключевой бит site.addsitedir(...), который добавляет содержимое любых *.pth файлов в указанном каталоге sys.path. В этом случае это файл easy-install.pth, который Python нуждается в поиске.

+0

спасибо ... это сработало. Я знал, что это просто что-то маленькое и легкое, что я отсутствовал. –

+0

+1. Файлы .egg-link не связаны с импортом, это всего лишь метаданные для setuptools, чтобы запомнить, где находится код. Магия импорта связана с easy-install.pth. –

0

Документация modwsgi имеет заметки на how to use virtualenv. Это обычно так же просто, как изменение вашего django.wsgi (или того, что вы называете его), чтобы он добавил среду virtualenv к пути modwsgi.

This link имеет дополнительные, дистиллированные, примечания по использованию pip/virtualenv/modwsgi.

Смежные вопросы