I am deploying a Django app on Heroku , which is successfully deploying, but I am getting the following error when I want to view the app on the provided http link. gunicorn
is in my requirements.txt
file.
2020-02-21T16:22:09.021935+00:00 heroku[web.1]: State changed from crashed to starting 2020-02-21T16:22:18.635625+00:00 heroku[web.1]: Starting process with command `gunicorn brendan_project.wsgi -- log file-` 2020-02-21T16:22:20.734759+00:00 heroku[web.1]: Process exited with status 127 2020-02-21T16:22:20.679520+00:00 app[web.1]: bash: gunicorn: command not found
Here is my requirements.txt
file:
asgiref==3.2.3 astroid==2.3.3 certifi==2019.11.28 chardet==3.0.4 dj-database-url==0.5.0 Django==3.0.2 django-crispy-forms==1.8.1 django-fontawesome==1.0 django-heroku==0.3.1 django-mailjet==0.3.1 django-sendgrid==1.0.1 django-smtp-ssl==1.0 gunicorn==20.0.4 idna==2.8 isort==4.3.21 lazy-object-proxy==1.4.3 mailjet-rest==1.3.3 mccabe==0.6.1 psycopg2==2.8.4 pylint==2.4.4 pytz==2019.3 PyYAML==5.3 requests==2.22.0 six==1.14.0 sqlparse==0.3.0 typed-ast==1.4.1 urllib3==1.25.7 whitenoise==5.0.1
I also have Pipfile
and Pipfile.lock
files.
Advertisement
Answer
I also have
Pipfile
andPipfile.lock
files
That’s your problem: you’re using two different tools that, partly, do the same thing.
If you have a Pipfile
and Pipfile.lock
, Heroku uses Pipenv to install your dependencies, and your requirements.txt
will be ignored.
In the absence of a Pipfile
and Pipfile.lock
, Heroku uses pip
to install dependencies from requirements.txt
.
Pick a single tool and use it everywhere. If you choose Pipenv, make sure all of your dependencies are reflected in your Pipfile
and Pipfile.lock
(e.g. by running pipenv install -r requirements.txt
), delete your requirements.txt
, and redeploy. If you want to use pip
, get rid of your Pipfile
and Pipfile.lock
.