2015-11-22 4 views
0

Я не могу развернуть приложение Django через gunicorn. Вот мой Procfile:Невозможно развернуть приложение Django в облаке Heroku

web: gunicorn config.wsgi:application 

Мой файл WSGI не находится в рамках проекта, но в папке конфигурации вместо ./config/wsgi.py:

import os 

from django.core.wsgi import get_wsgi_application 
from whitenoise.django import DjangoWhiteNoise 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.production") 
application = get_wsgi_application() 
application = DjangoWhiteNoise(application) 

Я использую инструмент heroku local, чтобы попытаться проверить это и Я бегу в эту ошибку:

$heroku local 
forego | starting web.1 on port 5000 
web.1 | [2015-11-22 10:05:29 -0800] [32081] [INFO] Starting gunicorn 19.3.0 
web.1 | [2015-11-22 10:05:29 -0800] [32081] [INFO] Listening at: http://0.0.0.0:5000 (32081) 
web.1 | [2015-11-22 10:05:29 -0800] [32081] [INFO] Using worker: sync 
web.1 | [2015-11-22 10:05:29 -0800] [32084] [INFO] Booting worker with pid: 32084 
web.1 | [2015-11-22 10:05:29 -0800] [32084] [ERROR] Exception in worker process: 
web.1 | __import__(module) 
web.1 | hon2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
web.1 | [2015-11-22 10:05:29 -0800] [32084] [INFO] Worker exiting (pid: 32084) 
web.1 | [2015-11-22 10:05:29 -0800] [32081] [INFO] Shutting down: Master 
web.1 | [2015-11-22 10:05:29 -0800] [32081] [INFO] Reason: Worker failed to boot. 

Я пытался читать о конфигурации PROCFILE и gunicorn в течение нескольких часов и попробовали разные конфигурации этого, даже пытаясь поместить файл wsgi в приложение и изменить имя приложения, все безрезультатно. Это кажется очевидным, что мне не хватает. Есть идеи?

Обновление с небольшой структурой проекта ниже. Он основан на структуре из двух совок Django и может быть найден на cookiecutter-django project.

base_dir/ 
|application/ 
    |templates/ 
    |base.html 
    |users/ 
    |views.py 
    |model.py 
    |... 
    |other_apps/ 
|config 
    |wsgi.py 
    |urls.py 
    |settings/ 
    |common.py 
+0

Не могли бы вы добавить свою структуру проекта, пожалуйста? –

+0

Если у меня все еще возникают проблемы после ответа Роберта ниже, я обновляю структуру. Были вдали от ПК весь день. – TheGRS

+0

Я добавил некоторые из моей структуры проекта к вопросу. – TheGRS

ответ

1

Вы должны позволить пулемету прослушивать порт, указанный переменной окружения $ PORT. Я делаю что-то вроде этого:

web: gunicorn -w 4 -b 0.0.0.0:$PORT app:app 

Я думаю, что вы, вероятно, правильно назовете все свои модули.

+0

Я думаю, что это то, что мне нужно. Теперь я сталкиваюсь с некоторыми другими ошибками с whitenoise, но stacktrace на самом деле говорит мне что-то против чрезвычайно двусмысленной ошибки ранее. Я проведу немного больше сегодня вечером и дам вам знать, где я. – TheGRS

+0

На самом деле, я забыл изменить переключатель -w на 1 и просто увидел 4 ошибки вместо 1. Я все еще вижу ту же ошибку, что и раньше, это изменение, к сожалению:/ – TheGRS

+0

После некоторого дополнительного копания я обнаружил, что мои настройки были для производство и, следовательно, локальное развертывание было неудачным, ваш ответ помог мне разобраться в этом, спасибо! – TheGRS

1

Похоже, что в вашем каталоге config нет файла __init__.py.

config должен быть обычным модулем/пакетом python.

+0

В каталоге Config есть файл __init__.py. – TheGRS

Смежные вопросы