La configuration de gunicorn pour Django sur Heroku
Je suis en train de configurer un test projet Django sur Heroku. Suivant les conseils ici et dans le Heroku Prise En Main je suis en train d'utiliser gunicorn
au lieu de le Django serveur de dev.
C'était ma première tentative de Procfile:
web: gunicorn_django --workers=4 --bind=0.0.0.0:$PORT my_project/settings.py
worker: python my_project/manage.py celeryd -E -B --loglevel=INFO
Cela m'a donné ce message d'erreur:
ImportError: Could not import settings 'settings.py' (Is it on sys.path?): No module named py
J'ai décidé de prendre une autre piste et suivi les conseils ici. Maintenant, mon Procfile ressemblait à ceci:
web: gunicorn_django -b 0.0.0.0:$PORT -w 9 -k gevent --max-requests 250 --preload my_project.settings
(J'ai aussi mis mes exigences fichier à inclure, gevent.) Il m'a donné le même message d'erreur:
ImportError: Could not import settings
Enfin, je l'ai juste mis à settings
:
web: gunicorn_django -b 0.0.0.0:$PORT -w 9 -k gevent --max-requests 250 --preload settings
Mais maintenant j'ai cette erreur:
Error: django project not found
La façon dont mon projet Django est mis en place, c'est que le settings.py
fichier est dans le répertoire parent de la prise en pension -- je n'ai pas le projet Django sous un autre répertoire. C'est au même niveau que le virtualenv et git fichiers. Ce serait un problème? Je suis sûr que je suis en train de faire quelque chose de simple mal-toute aide serait grandement appréciée.
Si je suis les instructions de Heroku ici et modifier le Procfile:
web: gunicorn hellodjango.wsgi -b 0.0.0.0:$PORT
Rien ne se passe -- pas d'erreurs dans les logs, mais pas processes exécution et de l'application s'affiche morts dans l'eau.
Oui, je l'ai, et je vais ajouter les détails. Réponse courte -- rien ne se passe quand je suivre ces directions. L'application ne démarre jamais.
Je vais avoir le même problème, fondamentalement, est passé par toutes ces étapes avant de trouver ce.
OriginalL'auteur tchaymore | 2012-05-10
Vous devez vous connecter pour publier un commentaire.
Je viens de courir sur cette même question. Dans le procfile vous avez copié à partir de la Heroku guide, changement
hellodjango.wsgi
àyourproject.wsgi
Semble que nous nous sommes tous victimes de aveuglément copier-coller maintenant et puis, mais dans votre (et ma) - défense, il semble comme il n'y a pas *.wsgi fichier qui est en fait d'être ouvert, c'est juste la façon dont vous signal à gunicorn que vous souhaitez exécuter votre projet django.
yourproject/wsgi.py
.OriginalL'auteur J C
J'ai eu exactement le même problème que vous rencontrez. La façon dont j'ai pu enfin obtenir ce travail a été d'utiliser le django app gunicorn.
J'ai ajouté gunicorn à la django settings.py
Ensuite, j'ai utilisé ce que mon web entrée dans ma Procfile.
Vous pouvez modifier vous .manage.py si vous utilisez une structure de répertoire différent alors je l'ai fait. Mon application a été dans /app, et mon python chemin d'accès a également été /app.
OriginalL'auteur Kin
J'ai eu ce problème et a atterri à pointer directement vers le python path, puis définissez les paramètres référence.
À la fin, mon Procfile ressemble à ceci:
J'ai dû courir
heroku run
qui a montré les variables d'environnement et c'est là que j'ai été capable de trouver la/app
laquelle j'ai ajouté mon nom de projet.OriginalL'auteur darren
Avez-vous un
requirements.txt
dans le dossier racine (contenant le motdjango
), ainsi que d'unsettings.py
? Ceux qui semblent l'être les exigences pour Django app de détection, tel que documenté ici.OriginalL'auteur Jon Mountjoy