2017-02-03 2 views
1

Итак, у меня есть приложение для флэков, я могу запустить его на своем компьютере локально и успешно использовать его для геройку, но когда я делаю heroku open, сайт продолжает говорить об ошибке приложения.Ошибка при использовании приложения python Flask heroku

Это в моем app.py:

import random 
import os 

from flask import Flask 
from gen_histogram import histogram 
from sample import generate_probability, generate_word 

app = Flask(__name__) 

dict_histogram = histogram('tom_sawyer.txt') 

tes_list = ["one", "fish", "two", "fish", "red", "fish", "blue", "fish"] 


def try_random(): 
    return random.choice(tes_list) 


@app.route('/') 
def hello_world(): 
    return try_random() 


if __name__ == '__main__': 
    port = int(os.environ.get("PORT", 5000)) 
    app.run(debug=True, port=port) 

PROCFILE:

web: gunicorn app:app 

Примечания:

У меня есть все установки, включая virtualenv и requirements.txt

+0

Что ошибка вы получаете? –

+0

Что говорят журналы? –

+0

@DanielRoseman -----> приложение Python обнаружило $ пункта установить -r requirements.txt -----> Открывать типы процессов PROCFILE объявляет типы -> Веб -----> КОМПРЕССОРНЫХ ... Сделано: 38.2M -----> Запуск ... Выпущено v7 https://tweetkaka.herokuapp.com/ развернуто в Heroku –

ответ

2

Я думаю, что вероятная возможность заключается в том, что у пушки не используется правильный порт. Heroku назначает порт для приложения. Я не совсем уверен, что этот порт назначается случайным образом или если он имеет значение по умолчанию. Но если это то, что вызывает проблему, изменив Procfile на это следует исправить:

web: gunicorn -b :$PORT app:app 

Этот путь ловит все, что порт назначения Heroku делает. Или, если вы решите установить переменную окружения для PORT, она также будет использовать это. gunicorn по умолчанию - порт 8000, поэтому настройка рабочей переменной PORT на 8000 на Heroku также должна работать.

Я уверен, что app.run не влияет на сервер gunicorn каким-либо образом. Я думаю, что gunicorn просто находит экземпляр приложения в модуле, указанном app:app (module:appinstance), и загружает представления.

+0

это очень понравилось – harrypotter0

Смежные вопросы