Как запустить приложение Django с веб-сервером Gunicorn/WSGI?
У меня есть существующее приложение Django, работающее локально на моем MacBook. Это структура каталогов выглядит примерно так:
myproject/
mySite/
__init__.py
settings.py
urls.py
wsgi.py
myApp1/
__init__.py
models.py
views.py
manage.py
requirements.txt
До сих пор я использовал игрушечный веб-сервер Django для запуска своего приложения: ./manage.py runserver 0.0.0.0:8000
, Но теперь я хочу использовать Gunicorn вместо этого. Так что я следую инструкциям здесь.
я делаю source myVirtualenv/bin/activate && cd myproject && gunicorn mySite.wsgi
, Я получаю следующую ошибку:
File "/usr/local/Cellar/python/2.7.12_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "myproject/MyApp2/models.py", line 11, in <module>
from caching.base import CachingManager, CachingMixin
ImportError: No module named caching.base
Когда я бегу ./manage.py runserver 0.0.0.0:8000
из того же места он работает отлично.
Зачем? Я делаю что-то неправильно? Разве Django-Cache-Machine не работает с Gunicorn/WSGI? Как обойти эту проблему?
2 ответа
Похоже, вы установили gunicorn глобально, а не в virtualenv, поэтому исполняемый файл указывает на глобальный Python и его каталог site-packages, а не на каталог внутри virtualenv. Переустановите gunicorn на месте.
Чтобы запустить ваш проект с помощью gunicorn, попробуйте следующее:
- активировать свой virtualenv
- перейти в каталог вашего проекта
- бежать
gunicorn mySite.wsgi:application --bind 127.0.0.1:8000
Если команды работают нормально, чем мои, вы настроены. В противном случае попробуйте следующий учебник. Я всегда использую это руководство самостоятельно, когда настраиваю новый проект для производства. Попытайся. Настройка Django с Nginx, Gunicorn и Supervisor