Вопрос

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

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

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

как мне сообщить wsgi, что он должен перейти по этим ссылкам, или я вообще делаю что-то не так?

спасибо, Филипп Вассибауэр

Это было полезно?

Решение

Вот как выглядит мой скрипт 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 нуждается в помощи в поиске.

Другие советы

В документации modwsgi содержатся примечания по как использовать virtualenv.Обычно это так же просто, как изменить ваш django.wsgi (или как бы вы это ни называли) файл, чтобы он добавлял среду virtualenv к пути modwsgi.

Эта ссылка содержит несколько дополнительных, обобщенных замечаний по использованию pip / virtualenv / modwsgi.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top