2013-05-06 5 views
3

Я следующий Getting Started with Django on Heroku tutorial
Когда я пытаюсь запустить Django приложение на Gunicorn с помощью Форман, я получаю следующую ошибку: отслеживающийПопытка запустить Django приложение на Gunicorn локально с помощью Foreman

09:23:33 web.1 | started with pid 7012 
09:23:34 web.1 | 2013-05-06 09:23:34 [7012] [INFO] Starting gunicorn 0.17.2 
09:23:34 web.1 | 2013-05-06 09:23:34 [7012] [INFO] Listening at: `http://0.0.0.0:5000` (7012) 
09:23:34 web.1 | 2013-05-06 09:23:34 [7012] [INFO] Using worker: sync 
09:23:34 web.1 | 2013-05-06 09:23:34 [7015] [INFO] Booting worker with pid: 7015 
09:23:34 web.1 | 2013-05-06 09:23:34 [7015] [ERROR] Exception in worker process: 
09:23:34 web.1 | Traceback (most recent call last): 
09:23:34 web.1 | File "/usr/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 485, in spawn_worker 
09:23:34 web.1 |  worker.init_process() 
09:23:34 web.1 | File "/usr/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 100, in init_process 
09:23:34 web.1 |  self.wsgi = self.app.wsgi() 
09:23:34 web.1 | File "/usr/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 103, in wsgi 
09:23:34 web.1 |  self.callable = self.load() 
09:23:34 web.1 | File "/usr/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 25, in load 
09:23:34 web.1 |  return util.import_app(self.app_uri) 
09:23:34 web.1 | File "/usr/local/lib/python2.7/site-packages/gunicorn/util.py", line 372, in import_app 
09:23:34 web.1 |  __import__(module) 
09:23:34 web.1 | File "/Users/cosmicMan66/DjangoDev/hepcat_server/hepcat_server/wsgi.py", line 27, in <module> 
09:23:34 web.1 |  from django.core.wsgi import get_wsgi_application 
09:23:34 web.1 | ImportError: No module named django.core.wsgi 
09:23:34 web.1 | Traceback (most recent call last): 
09:23:34 web.1 | File "/usr/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 485, in spawn_worker 
09:23:34 web.1 |  worker.init_process() 
09:23:34 web.1 | File "/usr/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 100, in init_process 
09:23:34 web.1 |  self.wsgi = self.app.wsgi() 
09:23:34 web.1 | File "/usr/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 103, in wsgi 
09:23:34 web.1 |  self.callable = self.load() 
09:23:34 web.1 | File "/usr/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 25, in load 
09:23:34 web.1 |  return util.import_app(self.app_uri) 
09:23:34 web.1 | File "/usr/local/lib/python2.7/site-packages/gunicorn/util.py", line 372, in import_app 
09:23:34 web.1 |  __import__(module) 
09:23:34 web.1 | File "/Users/cosmicMan66/DjangoDev/hepcat_server/hepcat_server/wsgi.py", line 27, in <module> 
09:23:34 web.1 |  from django.core.wsgi import get_wsgi_application 
09:23:34 web.1 | ImportError: No module named django.core.wsgi 
09:23:34 web.1 | 2013-05-06 09:23:34 [7015] [INFO] Worker exiting (pid: 7015) 
09:23:35 web.1 | 2013-05-06 09:23:35 [7012] [INFO] Shutting down: Master 
09:23:35 web.1 | 2013-05-06 09:23:35 [7012] [INFO] Reason: Worker failed to boot. 
09:23:35 web.1 | exited with code 3 
09:23:35 system | sending SIGTERM to all processes 
SIGTERM received 

PROCFILE является расположенный в корневом каталоге проекта и содержит:

веб: gunicorn hepcat_server.wsgi

settings.py находится в каталоге hepcat_server

, когда я использую $ python manage.py run_gunicorn
gunicorn начинает успешно и я вижу, по умолчанию Django страницу

+0

Взгляните на [этот gist] (https://gist.github.com/johnnylambada/5505071) - это мой полный журнал о том, как я получил учебники 1 и 2 DJANGO для работы с Heroku. – JohnnyLambada

ответ

1

Я была такая же проблема, следуя страницу настройки Heroku вы используете. Я нашел решение на this page. Я скопировал его здесь для потомков:

В корневом каталоге проекта django создайте файл Procfile. затем напишите это на нем web: sh -c "cd djangoproject & & gunicorn djangoproject.wsgi". затем создайте еще один файл с именем .env в том же месте, напишите DJANGO_SETTINGS_MODULE = djangoproject.settings в нем, это поможет вам установить требуемую переменную env, которая не может быть установлена ​​в модуле djangoproject.wsgi. запустить мастера, чтобы проверить. Это должно быть объяснительно, если дать нижеприведенную проблему.

При развертывании, после создания приложения в Heroku, установите переменную ENV с этой командой Heroku конфигурации: установка DJANGO_SETTINGS_MODULE = djangoproject.settings, это происходит потому, что развертывание не удается до файла djangoproject/djangoproject/WSGI. ругает .

не забудьте заменить «djangoproject» на название вашего проекта django.