我试图将Heroku链接到我们的Django站点,需要帮助理解此错误日志

时间:2017-05-15 02:50:07

标签: python django heroku

2017-05-15T02:13:43.087131+00:00 heroku[web.1]: State changed from starting to crashed
2017-05-15T02:14:39.171624+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=newsrank-115.herokuapp.com request_id=18dfe977-391f-4873-88f5-d4d7f7f196a7 fwd="50.131.194.116" dyno= connect= service= status=503 bytes= protocol=https
2017-05-15T02:14:39.438971+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=newsrank-115.herokuapp.com request_id=5b31eda6-12e1-42bd-9b1a-53cd95dbc758 fwd="50.131.194.116" dyno= connect= service= status=503 bytes= protocol=https
2017-05-15T02:14:48.180441+00:00 heroku[web.1]: State changed from crashed to starting
2017-05-15T02:14:55.743399+00:00 heroku[web.1]: Starting process with command `gunicorn mysite.wsgi`
2017-05-15T02:14:57.785412+00:00 app[web.1]: [2017-05-15 02:14:57 +0000] [4] [INFO] Starting gunicorn 19.7.1
2017-05-15T02:14:57.786079+00:00 app[web.1]: [2017-05-15 02:14:57 +0000] [4] [INFO] Listening at: http://0.0.0.0:59306 (4)
2017-05-15T02:14:57.786293+00:00 app[web.1]: [2017-05-15 02:14:57 +0000] [4] [INFO] Using worker: sync
2017-05-15T02:14:57.789917+00:00 app[web.1]: [2017-05-15 02:14:57 +0000] [8] [INFO] Booting worker with pid: 8
2017-05-15T02:14:57.794048+00:00 app[web.1]: [2017-05-15 02:14:57 +0000] [8] [ERROR] Exception in worker process
2017-05-15T02:14:57.794050+00:00 app[web.1]: Traceback (most recent call last):
2017-05-15T02:14:57.794051+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 578, in spawn_worker
2017-05-15T02:14:57.794052+00:00 app[web.1]:     worker.init_process()
2017-05-15T02:14:57.794052+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 126, in init_process
2017-05-15T02:14:57.794053+00:00 app[web.1]:     self.load_wsgi()
2017-05-15T02:14:57.794054+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 135, in load_wsgi
2017-05-15T02:14:57.794054+00:00 app[web.1]:     self.wsgi = self.app.wsgi()
2017-05-15T02:14:57.794055+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
2017-05-15T02:14:57.794056+00:00 app[web.1]:     self.callable = self.load()
2017-05-15T02:14:57.794056+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
2017-05-15T02:14:57.794057+00:00 app[web.1]:     return self.load_wsgiapp()
2017-05-15T02:14:57.794058+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
2017-05-15T02:14:57.794058+00:00 app[web.1]:     return util.import_app(self.app_uri)
2017-05-15T02:14:57.794059+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 352, in import_app
2017-05-15T02:14:57.794059+00:00 app[web.1]:     __import__(module)
2017-05-15T02:14:57.794060+00:00 app[web.1]: ModuleNotFoundError: No module named 'mysite.wsgi'
2017-05-15T02:14:57.794144+00:00 app[web.1]: [2017-05-15 02:14:57 +0000] [8] [INFO] Worker exiting (pid: 8)
2017-05-15T02:14:57.820506+00:00 app[web.1]: [2017-05-15 02:14:57 +0000] [4] [INFO] Shutting down: Master
2017-05-15T02:14:57.820607+00:00 app[web.1]: [2017-05-15 02:14:57 +0000] [4] [INFO] Reason: Worker failed to boot.
2017-05-15T02:14:57.871348+00:00 heroku[web.1]: Process exited with status 3
2017-05-15T02:14:57.886382+00:00 heroku[web.1]: State changed from starting to crashed

该应用程序,如前所述是Django,我们正在尝试在Heroku上托管它,应用程序确实构建。此错误在UI上显示为"应用程序错误。"现在,我的其他一个小组成员说代码(这是全部在github上)确实在他的机器上本地运行,我不确定这意味着什么。

我担心我在这方面很陌生,所以我可能会遗漏一些简单的东西。但是我无法找到很多关于mysite.wsgi在这种情况下应该是什么的引用。

我应该注意,我们的wsgi.py看起来像这样:

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

application = get_wsgi_application()

我没有写,所以我不确定这是对还是错。

如果我能提供更多信息,请告诉我,谢谢。

1 个答案:

答案 0 :(得分:0)

首先,要知道在django中启动新项目时会自动生成wsg​​i.py。这意味着,这是正确的。

其次,您的django项目无法自行访问服务器。它和服务器之间必须有一座桥梁。这就是wsgi.py的工作,它将你的项目变成一个应用程序。

第三,你必须告诉你的prod服务器这个wsgi.py在你的路径上。像/ home / project / mysite / mysite /.

之类的东西

<小时/> 我不使用heroku。但似乎必须在

后覆盖wsgi.py af
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise

application = get_wsgi_application()
application = DjangoWhiteNoise(application)