簡體   English   中英

heroku應用程序必須與django項目共享相同的名稱嗎?

[英]Does heroku app have to share the same name as django project?

我正在嘗試部署以django-admin startproject workout開始的應用程序。 幾個月后,是時候部署了, workout不是heroku應用程序的可用名稱。 因此,我決定進行shworkout 現在,我在部署方面遇到了問題。 看一下此回溯:

2018-01-15T13:50:49.922410+00:00 heroku[web.1]: Starting process with command `gunicorn shworkout.wsgi --log-file -`
2018-01-15T13:50:52.274803+00:00 app[web.1]: [2018-01-15 13:50:52 +0000] [4] [INFO] Starting gunicorn 19.7.1
2018-01-15T13:50:52.275393+00:00 app[web.1]: [2018-01-15 13:50:52 +0000] [4] [INFO] Listening at: http://0.0.0.0:57296 (4)
2018-01-15T13:50:52.275484+00:00 app[web.1]: [2018-01-15 13:50:52 +0000] [4] [INFO] Using worker: sync
2018-01-15T13:50:52.278566+00:00 app[web.1]: [2018-01-15 13:50:52 +0000] [8] [INFO] Booting worker with pid: 8
2018-01-15T13:50:52.283407+00:00 app[web.1]: [2018-01-15 13:50:52 +0000] [8] [ERROR] Exception in worker process
2018-01-15T13:50:52.283421+00:00 app[web.1]: Traceback (most recent call last):
2018-01-15T13:50:52.283428+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 578, in spawn_worker
2018-01-15T13:50:52.283430+00:00 app[web.1]:     worker.init_process()
2018-01-15T13:50:52.283431+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 126, in init_process
2018-01-15T13:50:52.283433+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 135, in load_wsgi
2018-01-15T13:50:52.283432+00:00 app[web.1]:     self.load_wsgi()
2018-01-15T13:50:52.283434+00:00 app[web.1]:     self.wsgi = self.app.wsgi()
2018-01-15T13:50:52.283443+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
2018-01-15T13:50:52.283441+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
2018-01-15T13:50:52.283442+00:00 app[web.1]:     self.callable = self.load()
2018-01-15T13:50:52.283446+00:00 app[web.1]:     return util.import_app(self.app_uri)
2018-01-15T13:50:52.283448+00:00 app[web.1]:     __import__(module)
2018-01-15T13:50:52.283444+00:00 app[web.1]:     return self.load_wsgiapp()
2018-01-15T13:50:52.283445+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
2018-01-15T13:50:52.283449+00:00 app[web.1]: ModuleNotFoundError: No module named 'shworkout'
2018-01-15T13:50:52.315187+00:00 app[web.1]: [2018-01-15 13:50:52 +0000] [4] [INFO] Reason: Worker failed to boot.
2018-01-15T13:50:52.283447+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 352, in import_app
2018-01-15T13:50:52.283527+00:00 app[web.1]: [2018-01-15 13:50:52 +0000] [8] [INFO] Worker exiting (pid: 8)
2018-01-15T13:50:52.315111+00:00 app[web.1]: [2018-01-15 13:50:52 +0000] [4] [INFO] Shutting down: Master
2018-01-15T13:50:52.401600+00:00 heroku[web.1]: Process exited with status 3
2018-01-15T13:50:52.415493+00:00 heroku[web.1]: State changed from starting to crashed

File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
2018-01-15T13:50:52.283449+00:00 app[web.1]: ModuleNotFoundError: No module named 'shworkout'

最吸引我注意的是 我的猜測是:gunicorn正在尋找wsgi.py文件(位於/workout ),但在錯誤的位置尋找它,即名為/shworkout的文件夾。 這樣的文件夾在我的項目中不存在。 shworkout只是我在heroku上的應用程序的名稱。

所以,這是一個正確的解釋? 那該怎么辦呢? 如果我錯了,那么這里到底發生了什么?

Procfile

web: gunicorn shworkout.wsgi --log-file -

我應該改變shworkoutworkout

wsgi.py

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "workout.settings.production")

application = get_wsgi_application()

我使用的是錯誤的Procfile。 更改自:

web: gunicorn shworkout.wsgi --log-file -

web: gunicorn workout.wsgi --log-file -

說明:

Procfile應該指向wsgi.py文件的位置,該文​​件位於/workout ,而不是在/shworkout

暫無
暫無

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

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