Contexte: Je vous écris une application de flacon de taille moyenne (10-15 vues), et dans le processus, j'espère organiser le code d'une manière qui fera facilement maintenable et extensible (pas un fichier monolithique comme la plupart des applications Flask).Procfile nom du module gunicorn personnalisé
La structure de l'application imite le documentation comme suit:
/AwesomeHackings
/ENV
/AwesomeHackings
/models
/static
/templates
/__init__.py
/awesome.py
/awesome.cfg
/Procfile
/README.MD
/requirements.txt
/run.py
Problème: Je suis incapable d'obtenir contremaître de travailler avec une application de flacon qui n'est pas nommé « app ». J'aimerais que run.py soit le point d'entrée de mon application.
J'utilise gunicorn + gevent, et mon courant Procfile CONTIENT:
web: gunicorn -w 2 -b 0.0.0.0:$PORT -k gevent app:run
J'utilise run.py
pour tester l'application:
from AwesomeHackings import awesome
awesome.app.run(debug=True)
Ainsi, je suppose que je pourrais simplement remplacer run
pour app
dans le fichier Procfile, mais lors de l'exécution foreman start
, gunicorn échoue avec un verbiage insignifiant sur les modules.
J'ai une configuration très similaire et même si je comprends pourquoi il serait exécuté: app, il ne fonctionne toujours pas sur ma fin. Que contient votre fichier awesome.py, exactement? – Caroline
Dans ce cas, awesome.py contient la définition de l'objet app (et, à l'époque où j'ai écrit des applications flacon monolithique simples, toutes les vues, etc.). A partir du répertoire où vous lancez gunicorn, comment importeriez-vous l'objet 'app'? C'EST À DIRE. de l'application import foo. Ce module, combinaison de noms de variables est ce qui doit être passé à gunicorn. Pouvez-vous fournir plus d'informations et de détails sur votre configuration? Heureux d'aider par courriel (Mon nom d'utilisateur @ gmail.com) –
Pour la référence future de quelqu'un d'autre. J'ai corrigé mon problème et expliqué comment dans http://stackoverflow.com/questions/22921187/flask-and-gunicorn-multiple-modules-circular-imports-not-all-routes-accessib. – Caroline