Как запустить приложение 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, попробуйте следующее:

  1. активировать свой virtualenv
  2. перейти в каталог вашего проекта
  3. бежать gunicorn mySite.wsgi:application --bind 127.0.0.1:8000

Если команды работают нормально, чем мои, вы настроены. В противном случае попробуйте следующий учебник. Я всегда использую это руководство самостоятельно, когда настраиваю новый проект для производства. Попытайся. Настройка Django с Nginx, Gunicorn и Supervisor

Другие вопросы по тегам