Развертывание приложения 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!' 

  • OpenCV показывает серое окно
  • matplotlib 2d line line, = значение запятой графика
  • Проблемы с компиляцией JPype
  • Получение атрибутов класса
  • Массив печати Python в одной функции печати
  • Как создать целочисленное поле auto increment Django
  • Модуль Python для shellquote / unshellquote?
  • Для цикла с пользовательскими шагами в python
  • 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)) 
    Interesting Posts

    python, сортировать нисходящий dataframe с пандами

    Совместное использование памяти в Gunicorn?

    Обновление Django до 1,9 ошибки «AppRegistryNotReady: приложения еще не загружены».

    Вложенная проверка с помощью поддерживающего колбу RequestParser

    Как использовать переменные, уже определенные в ConfigParser

    Какие числа вы можете передать как многословие при запуске Python Unit Test Suites?

    Как вы проверяете подпись RSA SHA1 в Python?

    Perl или Python: конвертировать дату с dd / mm / yyyy в yyyy-mm-dd

    Создание многопоточного сервера с использованием инфраструктуры SocketServer в python

    Выполнение len в списке zip-объекта очищает zip

    Не удалось установить pip: ошибка отказа в разрешении

    Преобразование строк ввода пользователя в исходный строковый литерал для создания регулярного выражения

    Нарисуйте прозрачный прямоугольник в pygame

    Используйте (Python) Gstreamer для декодирования аудио (для данных PCM)

    Точки доступа Matplotlib / python

    Python - лучший язык программирования в мире.