簡體   English   中英

無法在Heroku雲中部署Django應用程序

[英]Can't deploy Django application in Heroku cloud

我似乎無法通過gunicorn部署Django應用程序。 這是我的Procfile

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了以下錯誤:

$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 Two Scoops的結構,可以在cookiecutter-django項目中找到

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

您必須讓gunicorn監聽$ PORT環境變量指定的端口。 我做這樣的事情:

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

我認為您可能正確地調用了所有模塊。

看起來您的config目錄沒有__init__.py文件。

config必須是常規的python模塊/包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM