在Heroku Server上上传Django项目

时间:2019-05-15 07:39:26

标签: python django heroku hosting uploading

我将Django项目上传到Heroku,并在浏览器中收到此错误消息,如屏幕截图所示

CSS stylesheet not loading

但是当我查看管理员的日志时,我在下面看到此消息:

  

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

我也有一个PipfilePipfile.lock

Heroku为什么找不到gunicorn

2 个答案:

答案 0 :(得分:1)

使用heroku logs --tail命令在命令行上检查错误日志,以了解问题所在。

答案 1 :(得分:0)

通常来说,您应该使用 requirements.txt PipfilePipfile.lock。他们做的大致相同,但是使用不同的工具。

PipfilePipfile.lock是较新的标准。如果存在,则Heroku使用Pipenv安装依赖项。 在这种情况下,requirements.txt文件将被忽略。

您应该

  1. 选择使用Pipenv。

    1. 您的要求可能已经在PipfilePipfile.lock中列出,但是为了确保在本地运行pipenv install -r requirements.txt
    2. requirements.txt删除git rm requirements.txt
    3. 提交此更改,例如git commit -m 'Switch from pip to Pipenv'
    4. 推送到Heroku。
  2. 选择使用pip

    1. 阅读您的Pipfile,以查看其中是否需要任何东西。该文件不只是列出依赖项。

      例如,您的Pipfile可以在python_version = '3.7'部分中指定所需的Python版本,例如[requires]。这无法用requirements.txt表示,因此您需要create a runtime.txt file来指定您的Python版本。

      您可能还想为开发依赖项创建另一个需求文件。

    2. Pipfile删除Pipfile.lockgit rm Pipfile Pipfile.lock

    3. 提交,例如git commit -m 'Revert from Pipenv to pip

    4. 推送到Heroku。