【发布时间】:2018-05-19 23:04:34
【问题描述】:
我正在尝试将我的第一个 Django 应用程序部署到 Heroku。我能够迁移数据库并创建一个超级用户,但现在我陷入了困境:
[2018-05-19 22:51:01 +0000] [4] [INFO] Listening at: http://0.0.0.0:31247 (4)
2018-05-19T22:51:01.283512+00:00 app[web.1]: [2018-05-19 22:51:01 +0000] [4] [INFO] Using worker: sync
2018-05-19T22:51:01.287214+00:00 app[web.1]: [2018-05-19 22:51:01 +0000] [8] [INFO] Booting worker with pid: 8
2018-05-19T22:51:01.292792+00:00 app[web.1]: [2018-05-19 22:51:01 +0000] [8] [ERROR] Exception in worker process
2018-05-19T22:51:01.292795+00:00 app[web.1]: Traceback (most recent call last):
2018-05-19T22:51:01.292796+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2018-05-19T22:51:01.292797+00:00 app[web.1]: worker.init_process()
2018-05-19T22:51:01.292798+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 129, in init_process
2018-05-19T22:51:01.292800+00:00 app[web.1]: self.load_wsgi()
2018-05-19T22:51:01.292801+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
2018-05-19T22:51:01.292802+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2018-05-19T22:51:01.292803+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
2018-05-19T22:51:01.292804+00:00 app[web.1]: self.callable = self.load()
2018-05-19T22:51:01.292806+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
2018-05-19T22:51:01.292807+00:00 app[web.1]: return self.load_wsgiapp()
2018-05-19T22:51:01.292808+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
2018-05-19T22:51:01.292809+00:00 app[web.1]: return util.import_app(self.app_uri)
2018-05-19T22:51:01.292810+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/gunicorn/util.py", line 350, in import_app
2018-05-19T22:51:01.292811+00:00 app[web.1]: __import__(module)
2018-05-19T22:51:01.292816+00:00 app[web.1]: ModuleNotFoundError: No module named 'whispering-shelf-25150'
2018-05-19T22:51:01.292905+00:00 app[web.1]: [2018-05-19 22:51:01 +0000] [8] [INFO] Worker exiting (pid: 8)
2018-05-19T22:51:01.329968+00:00 app[web.1]: [2018-05-19 22:51:01 +0000] [4] [INFO] Shutting down: Master
2018-05-19T22:51:01.330127+00:00 app[web.1]: [2018-05-19 22:51:01 +0000] [4] [INFO] Reason: Worker failed to boot.
2018-05-19T22:51:01.413026+00:00 heroku[web.1]: Process exited with status 3
2018-05-19T22:51:07.070132+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=whispering-shelf-25150.herokuapp.com request_id=4b10d0f1-939f-44b6-8ee0-b535cb07f8de fwd="185.5.121.201" dyno= connect= service= status=503 bytes= protocol=https
我使用一些教程开发了我的应用程序,这些教程在我的设置中使用了mysite。但是现在我的 Heroku 应用程序被命名为whispering-shelf-25150。
这些名字之间有什么关系?例如,我是否应该将settings.py 中出现的mysite 更改为whispering-shelf-25150?
在我的 wsgi 文件中,我有:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "whispering-shelf-25150.settings.settings")
【问题讨论】:
-
你为什么要设置
DJANGO_SETTINGS_MODULE? Heroku 可以在没有这个环境变量的情况下很好地运行 Django 应用程序。