如何在日志中查看完整的 Heroku 堆栈跟踪?

时间:2021-04-15 15:23:29

标签: django heroku

当我将 Django 应用程序部署到 Heroku 时,在控制台 (heroku logs --tail -a george-paintings) 中我看到一个错误:

2021-04-15T15:14:42.109272+00:00 app[web.1]: Error: No application module specified.
2021-04-15T15:14:42.161597+00:00 heroku[web.1]: Process exited with status 1
2021-04-15T15:14:42.290903+00:00 heroku[web.1]: State changed from starting to crashed

但我不知道出了什么问题。我的Procfile看起来像这样

web: gunicorn --pythonpath application.george_paintings.george_paintings.wsgi --log-file - --log-level debug

在哪里可以找到有关我的错误的更多信息?

1 个答案:

答案 0 :(得分:1)

我怀疑没有什么可看的了。一个好的第一步是尝试运行 heroku local 以查看您的开发机器上是否有同样的问题。这将使用您的 Procfile,而如果您通过 python manage.py migrate 或类似方式运行,则不会使用您的 Procfile

该错误提供了一个很好的提示:

app[web.1]: Error: No application module specified.

Gunicorn expects an application module name 作为命令行参数。我怀疑您打算将 application.george_paintings.george_paintings.wsgi 解释为您的应用程序模块,但它被当作 --pythonpath 的参数吞没了:

gunicorn --pythonpath application.george_paintings.george_paintings.wsgi  #...

您不需要明确提供 PYTHONPATH。尝试从您的 Procfile 中完全删除该参数:

gunicorn application.george_paintings.george_paintings.wsgi --log-file - --log-level debug

如果这适用于 heroku local,请提交更改并重新部署。

如果没有,请查看您的目录结构。 application.george_paintings.george_paintings.wsgi 是 Django 项目的一个有点奇怪的模块名称。通常你只需要像 george_paintings.wsgi 这样的东西(表明 Gunicorn 应该使用它在 george_paintings/wsgi.py 找到的 Python 模块作为它的入口点)。