Déploiement d'une application Flask sur Heroku
Je suis en train de développer mon premier "grand" app avec le ballon sur Heroku et je suis d'essayer de combiner le tutoriel de base ici: https://devcenter.heroku.com/articles/python avec les instructions ici: http://flask.pocoo.org/docs/patterns/packages/#larger-applications. Il fonctionne en local avec "contremaître de début" mais quand je push Heroku, j'obtiens une erreur que le mauvais port est en cours d'utilisation:
De départ du processus avec la commande
python run.py
2012-12-04T23:45:18+00:00 app[web.1]: * en cours d'Exécution sur
http://127.0.0.1:5000/
2012-12-04T23:45:18+00:00 app[web.1]: *
Redémarrage avec reloader 2012-12-04T23:45:23+00:00 heroku[web.1]:
Erreur R11 (Mauvais bind) -> Processus lié au port 5000, devrait être 33507
(voir la variable d'environnement PORT)
Je suis nouveau à tout cela, mais on dirait qu'il essaie de l'exécuter "localement" sur Heroku. J'ai essayé toutes sortes de combinaisons, mais ne peut pas le faire fonctionner. Mon code très simple maintenant est (l'application est appelée "pml"):
répertoire: /pml
Procfile:
web: python run.py
run.py:
from pml import app
app.run(debug=True)
répertoire: /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!'
source d'informationauteur crix
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas utilisé Heroku, mais pour moi, on dirait qu'ils ont un port réservé pour Flacon, spécifiquement 33507. On dirait qu'il va essayer d'utiliser une variable d'environnement, dont je ne suis pas sûr de la façon de mettre en Heroku. La bonne nouvelle est que vous pouvez dire Flacon de port à utiliser.
essayez ceci:
et il semble que l'ajout du PORT à l'env, en heroku est fait comme ceci:
Vous devrait n'avez qu'à faire un de ces. Je voudrais essayer la première, car il est, pour moi, est la seule manière de résoudre le problème.
MODIFIER
Après la lecture de l'article à partir de votre post, je vois où le problème vient.
Que la ligne dit, obtenir la valeur de
PORT
de l'environnement si elle est définie, sinon utilisez 5000. Je ne suis pas sûr pourquoi ils ne le permettrait pas à courir à partir de 5000 si c'est ce qui est dans leurs docs, mais je voudrais essayer ce changement: