J'ai cloné un projet dans mon dossier personnel, appelons-le /home/telessaude
. Ainsi, la racine du projet est située à /home/telessaude/telessaude_branch_master
Si je suis dans le dossier Django home project (/ home/telessaude/telessaude_branch_master) et que j'émets une comman gunicorn telle que
gunicorn -w 2 -b 0.0.0.0:8000 telessaude.wsgi_dev:application --reload --timeout 900
gunicorn démarre et fonctionne très bien. Cependant ... si j'essaie d'exécuter la même commande sur un répertoire ci-dessus (/ home/telessaude), j'obtiens l'erreur suivante:
telessaude@ubuntu:~$ gunicorn -w 2 -b 0.0.0.0:8000 telessaude.wsgi_dev:application --reload --timeout 900
[2017-03-22 16:39:28 +0000] [10405] [INFO] Starting gunicorn 19.6.0
[2017-03-22 16:39:28 +0000] [10405] [INFO] Listening at: http://0.0.0.0:8000 (10405)
[2017-03-22 16:39:28 +0000] [10405] [INFO] Using worker: sync
[2017-03-22 16:39:28 +0000] [10410] [INFO] Booting worker with pid: 10410
[2017-03-22 16:39:28 +0000] [10410] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 557, in spawn_worker
worker.init_process()
File "/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 126, in init_process
self.load_wsgi()
File "/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 136, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 65, in load
return self.load_wsgiapp()
File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python2.7/dist-packages/gunicorn/util.py", line 357, in import_app
__import__(module)
ImportError: No module named telessaude.wsgi_dev
J'ai aussi essayé de lancer gunicorn dans mon dossier personnel avec
gunicorn -w 2 -b 0.0.0.0:8000 telessaude_branch_master.telessaude.wsgi_dev:application --reload --timeout 900
et
gunicorn -w 2 -b 0.0.0.0:8000 /home/telessaude/telessaude_branch_master/telessaude.wsgi_dev:application --reload --timeout 900
mais aucun d'entre eux n'a également fonctionné. Quelqu'un peut-il me dire comment résoudre ce problème? J'ai besoin d'exécuter gunicorn à partir de n'importe quel dossier, car je dois l'ajouter en tant que paramètre "commande" au superviseur.
Je n'utilise pas un environnement virtuel.
Vous devez ajouter votre application Django au chemin Python.
Dans le dernier gunicorn, vous pouvez essayer ceci:
Si le chemin racine de Django est /usr/local/src/djangoapp/
.
Le settings.py
le chemin par défaut serait /usr/local/src/djangoapp/djangoapp/settings.py
.
gunicorn \
-c /usr/local/src/djangoapp/gunicorn_config.py \
--env Django_SETTINGS_MODULE=djangoapp.settings \
--pythonpath '/usr/local/src/djangoapp' \
djangoapp.wsgi:application
--env
et --pythonpath
sont requis.
Le chemin relatif est également très bien!