Ошибка приложения Flask на Heroku: модуль с именем app отсутствует - PullRequest
0 голосов
/ 27 августа 2018

У меня есть приложение Flask, которое я развернул на Heroku, но я получаю сообщение об ошибке:

2018-08-27T12:39:32.197715+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=heroku-seb-test.herokuapp.com request_id=3e02d494-1a3f-4467-9eaa-aaa551b4ca03 fwd="91.143.113.54" dyno= connect= service= status=503 bytes= protocol=https

Похоже, что это ошибка в моей структуре приложения Flask, потому что чуть выше он выдает исключение Python / Flask:

File "/app/.heroku/python/lib/python2.7/site- 
packages/gunicorn/util.py", line 357, in import_app 
__import__(module)
ImportError: No module named app

Вот моя структура папок:

  • Folio
    • routes.py
    • (Procfile и другие зависимости)
    • статические
      • CSS
      • 1020 * JS *
      • изображения
      • Lib
    • шаблоны
      • index.html
    • venv

Вот мой routes.py файл:

from flask import Flask
from flask import render_template, request, flash, session, url_for, 
redirect

app = Flask(__name__)

@app.route('/')
def index():
return render_template('index.html')

app.run(debug=True)

Вот мой Procfile:

web: gunicorn app:app

1 Ответ

0 голосов
/ 27 августа 2018

Procfile сообщает Heroku, как запустить ваше приложение. gunicorn ожидает, что ему будет предоставлен аргумент в форме module.variable, идентифицирующий объект, который он должен запустить.

Сегодня вы говорите, что ваше приложение находится в переменной с именем app в модуле с именем app:

web: gunicorn app:app

Но ваш модуль не называется app - он называется routes (файл routes.py). Обновите ваш Procfile, чтобы он указывал на правильный объект:

web: gunicorn routes:app

Передайте это изменение и нажмите Heroku, чтобы увидеть его эффект. (Или вы можете использовать heroku local, чтобы попробовать его локально.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...