web-dev-qa-db-fra.com

Heroku - Aucun processus Web en cours d'exécution

J'ai créé un bot Twitter en utilisant tweepy dans Python et j'ai essayé de le déployer en utilisant Heroku. Le Bot tweete juste après certains intervalles. Après l'avoir déployé, le programme Python juste ne s'exécute pas et le journal Heroku affiche l'erreur suivante:

at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" Host=fathomless-island-25537.herokuapp.com request_id=0aa76d12-31e6-4940-85ec-a8476af4f82f fwd="182.64.210.145" dyno= connect= service= status=503 bytes=

Après avoir examiné des problèmes similaires où une application Django doit être déployée, j'ai essayé:

heroku ps:scale web=1

et a obtenu:

Scaling dynos... !
 !  Couldn't find that formation.

Cela signifie-t-il que le programme n'a pas réussi à établir un processus Web ou y a-t-il autre chose lié aux dynos? Ou si je dois inclure du code lié aux dynos dans mon programme? Je ne sais pas quelle partie de tout ce processus a un problème. Toutes mes excuses si c'est trop basique.

14
arjun gulyani

La question est un peu plus ancienne, mais de toute façon ...

Avant de pouvoir faire évoluer les dynos, vous devez disposer d'un Procfile, dans lequel vous définissez ce qui doit se produire au démarrage du processus. Dans votre cas, le processus doit être appelé web. Nous reviendrons sur le contenu du fichier dans un instant.

Mais d'abord: pour moi, il semble préférable d'utiliser gunicorn pour exécuter python apps sur heroku, donc vous devez d'abord installer gunicorn, exécutez pip freeze > requirements.txt et poussez-le sur heroku (eh bien, attendez avec cela jusqu'à ce que vous ayez le Procfile). Pour plus d'informations, voir: python avec gunicorn sur herok

Le Procfile n'a besoin que d'une ligne web: gunicorn <filename>:<main method name>. Dans votre cas, ce serait (en supposant que votre méthode principale s'appelle 'app') web: gunicorn bot:app.

Maintenant, poussez tout cela vers heroku, puis vous pouvez mettre votre dyno à l'échelle avec la commande que vous avez utilisée heroku ps:scale web=1

5
Stefan

J'avais du mal à charger mon application, jusqu'à ce que je modifie mon Procfile

de dire

web: gunicorn app:app

à

web gunicorn app:app

Suppression du : après web l'a fait fonctionner pour moi.

5
Scott Eifel

Lorsque vous essayez heroku ps:scale web=1 et tout le reste en vain, vérifiez que vous avez Procfile avec le nom et le contenu corrects. J'ai eu un problème avec ça. Après avoir corrigé le nom et le contenu, et poussé la mise à jour vers heroku, l'application a démarré d'elle-même. Après ça heroku open fonctionne comme prévu.

1
biocyberman