Развертывание приложения Flask в Heroku

Я пытаюсь разработать свое первое «большое» приложение с Flask на Heroku, и я пытаюсь объединить основной учебник здесь: https://devcenter.heroku.com/articles/python с инструкциями здесь: http: // flask.pocoo.org/docs/patterns/packages/#larger-applications . Он работает локально с «стартом мастера», но когда я нажимаю на Heroku, я получаю сообщение об ошибке, что используется неправильный порт:

Запуск с помощью команды python run.py 2012-12-04T23: 45: 18 + 00: 00 app [web.1]: * Работает в http://127.0.0.1:5000/ 2012-12-04T23: 45: 18 +00: 00 app [web.1]: * Перезапуск с перезагрузкой 2012-12-04T23: 45: 23 + 00: 00 heroku [web.1]: Ошибка R11 (Плохая привязка) -> Процесс, связанный с портом 5000, должен be 33507 (см. переменную среды PORT)

Я новичок во всем этом, но похоже, что он пытается запустить «локально» на Heroku. Я пробовал всевозможные комбинации, но не могу заставить его работать. Мой очень простой код прямо сейчас (приложение называется «pml»):

каталог: / pml

PROCFILE:

 web: python run.py 

run.py:

 from pml import app app.run(debug=True) 

каталог: / pml / pml /

__init__.py

 from flask import Flask app = Flask(__name__) import pml.views 

view.py

 from pml import app @app.route('/') def index(): return 'Hello World!' 

One Solution collect form web for “Развертывание приложения Flask в Heroku”

Я не использовал Heroku, но для меня это похоже, что у них есть зарезервированный порт для Flask, в частности 33507. Похоже, он попытается использовать переменную окружения, которую я не уверен, как установить в Heroku. Хорошая новость заключается в том, что вы можете указать Flask, какой порт использовать.

попробуй это:

 app.run(debug=True, port=33507) 

и похоже, что добавление PORT в env в heroku выполняется следующим образом:

 heroku config:add PORT=33507 

Вам нужно только сделать один из них. Я бы попробовал первый, поскольку для меня это прямой способ решить проблему.

РЕДАКТИРОВАТЬ
Прочитав статью со своего поста, я вижу, в чем проблема.

 port = int(os.environ.get('PORT', 5000)) 

В этой строке указывается значение PORT из среды, если оно установлено, в противном случае используется 5000. Я не уверен, почему они не позволят ей работать с 5000, если это то, что находится в их документах, но я бы попытался это изменение :

 port = int(os.environ.get('PORT', 33507)) 
  • Журналы Heroku для проектов Django пропускают ошибки
  • Как перенаправить на www. версия моего сайта Flask на Heroku?
  • Как заморозить требования, которые не могут быть удовлетворены на местном уровне?
  • Отображать ссылки на новые созданные веб-страницы
  • Как получить доступ к файлам на Heroku?
  • Деградация производительности для Django с Gunicorn, развернутая в Heroku
  • Создание API RESTful Flask для Scrapy
  • Как настроить сотрудника RQ на Heroku с помощью RedisCloud с помощью Flask
  • Python - лучший язык программирования в мире.