Heroku Flask Gunicorn Команда не найдена - PullRequest
1 голос
/ 18 июня 2020

Пытаюсь развернуть свое приложение flask на Heroku, но продолжаю сталкиваться с этой ошибкой:

2020-06-18T04:13:43.162139+00:00 heroku[web.1]: State changed from crashed to starting 2020-06-18T04:13:47.317872+00:00 heroku[web.1]: Starting process with command gunicorn learning_flashcards:app 2020-06-18T04:13:49.836638+00:00 heroku[web.1]: Process exited with status 127 2020-06-18T04:13:49.884998+00:00 heroku[web.1]: State changed from starting to crashed 2020-06-18T04:13:49.767236+00:00 app[web.1]: bash: gunicorn: command not found

Я проверил несколько других решений здесь (например, это: Heroku не может найти команду gunicorn ) и последовал их совету, включая:

  • Поместите gunicorn в файл requirements.txt и повторно запустите его
  • pip install gunicorn
  • Двойная проверка git и git pu sh heroku master обновлены

Кроме того, запуск Heroku local показывает это:

12:23:12 AM web.1 | [2020-06-18 00:23:12 -0400] [16504] [INFO] Starting gunicorn 20.0.4 12:23:12 AM web.1 | [2020-06-18 00:23:12 -0400] [16504] [INFO] Listening at: http://0.0.0.0:5000 (16504) 12:23:12 AM web.1 | [2020-06-18 00:23:12 -0400] [16504] [INFO] Using worker: sync 12:23:12 AM web.1 | [2020-06-18 00:23:12 -0400] [16507] [INFO] Booting worker with pid: 16507

Итак, похоже, Gunicorn работает нормально.

Мне интересно, правильно ли я пишу команду в procfile? Также пробовали поиграть с этим, но безуспешно.

Вот мой root каталог:

.
├── Procfile
├── __pycache__
├── config.py
├── learning_flashcards
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-36.pyc
│   │   ├── app.cpython-36.pyc
│   │   └── views.cpython-36.pyc
│   ├── app.py
│   ├── static
│   │   └── style.css
│   ├── templates
│   └── views.py
├── manage.py
├── requirements
│   ├── common.txt
│   ├── dev.txt
│   ├── requirements.txt
│   └── runtime.txt
├── setup.py
├── tests
└── venv

И Learning_flashcards / app.py:

from flask import Flask

app = Flask(__name__)


@app.route('/')
def learning_flashcards():
return "Hello World!"

if __name__ == '__main__':
    app.run()
...