'gunicorn command not found, but it's in my requirements.txt

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.



Solution 1:[1]

I also have Pipfile and Pipfile.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.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Chris