我将Django项目上传到Heroku,并在浏览器中收到此错误消息,如屏幕截图所示
但是当我查看管理员的日志时,我在下面看到此消息:
2019-05-14T21:26:26.138333 + 00:00 app [web.1]:bash:gunicorn:命令未找到
但是gunicorn
包含在我的requirements.txt
文件中:
dj-database-url==0.5.0
Django==2.2.1
django-heroku==0.3.1
gunicorn==19.9.0
psycopg2==2.8.2
pytz==2019.1
sqlparse==0.3.0
whitenoise==4.1.2
我也有一个Pipfile
和Pipfile.lock
。
Heroku为什么找不到gunicorn
?
答案 0 :(得分:1)
使用heroku logs --tail
命令在命令行上检查错误日志,以了解问题所在。
答案 1 :(得分:0)
通常来说,您应该使用 requirements.txt
或 Pipfile
和Pipfile.lock
。他们做的大致相同,但是使用不同的工具。
Pipfile
和Pipfile.lock
是较新的标准。如果存在,则Heroku使用Pipenv安装依赖项。 在这种情况下,requirements.txt
文件将被忽略。
您应该
选择使用Pipenv。
Pipfile
和Pipfile.lock
中列出,但是为了确保在本地运行pipenv install -r requirements.txt
。requirements.txt
删除git rm requirements.txt
。git commit -m 'Switch from pip to Pipenv'
。 选择使用pip
。
阅读您的Pipfile
,以查看其中是否需要任何东西。该文件不只是列出依赖项。
例如,您的Pipfile
可以在python_version = '3.7'
部分中指定所需的Python版本,例如[requires]
。这无法用requirements.txt
表示,因此您需要create a runtime.txt
file来指定您的Python版本。
您可能还想为开发依赖项创建另一个需求文件。
用Pipfile
删除Pipfile.lock
和git rm Pipfile Pipfile.lock
。
提交,例如git commit -m 'Revert from Pipenv to pip
。
推送到Heroku。