Ошибки импорта Pip + WSGI
-
18-09-2019 - |
Вопрос
когда я развертываю свои приложения, которые отлично работали с использованием тестового сервера 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.