gunicorn.errors.HaltServer: django

Tengo una aplicación django y trato de configurarlo con gunicorn primero y luego con supervisor y nginx.

La aplicación se ejecuta con el comando django normal perfectamente como python manage.py runserver

Instalé gunicorn usando pip como pip install gunicorn y la versión de django es 1.5.3

cuando ejecuto el siguiente comando dentro de la env virtual como abajo

gunicorn hello.wsgi:application -b xx.xxx.xxx.xx:8000 y se enfrentó al error

     Traceback (most recent call last): File "/root/Envs/proj/bin/gunicorn", line 9, in  load_entry_point('gunicorn==19.0.0', 'console_scripts', 'gunicorn')() File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 74, in run WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run() File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 166, in run super(Application, self).run() File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 71, in run Arbiter(self).run() File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 169, in run self.manage_workers() File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 477, in manage_workers self.spawn_workers() File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 537, in spawn_workers time.sleep(0.1 * random.random()) File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 209, in handle_chld self.reap_workers() File "/root/Envs/proj/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 459, in reap_workers raise HaltServer(reason, self.WORKER_BOOT_ERROR) gunicorn.errors.HaltServer:  

    Entonces, ¿por qué en realidad se encuentra el error anterior y cuál es la solución?

    En realidad, el problema aquí fue el propio archivo wsgi, anteriormente, antes de django 1.3, el archivo wsgi se llamaba con una extensión de .wsgi , pero ahora, en las versiones recientes, se creará con una extensión de .py que es el archivo wsgi. módulo de python

    por lo que el archivo debe ser hello_wsgi.py y el comando debe ser

     gunicorn hello:application -b xx.xxx.xxx.xx:8000 

    No has mostrado una salida completa. Probablemente se ve como

     $ gunicorn elcarweb.wsgi [2015-10-27 21:01:47 +0000] [5429] [INFO] Starting gunicorn 19.2.1 [2015-10-27 21:01:47 +0000] [5429] [INFO] Listening at: http://127.0.0.1:8000 (5429) [2015-10-27 21:01:47 +0000] [5429] [INFO] Using worker: sync [2015-10-27 21:01:47 +0000] [5434] [INFO] Booting worker with pid: 5434 [2015-10-27 21:01:47 +0000] [5434] [ERROR] Exception in worker process: Traceback (most recent call last): File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/arbiter.py", line 503, in spawn_worker worker.init_process() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/workers/base.py", line 116, in init_process self.wsgi = self.app.wsgi() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load return self.load_wsgiapp() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp return util.import_app(self.app_uri) File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/util.py", line 355, in import_app __import__(module) ImportError: No module named elcarweb.wsgi Traceback (most recent call last): File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/arbiter.py", line 503, in spawn_worker worker.init_process() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/workers/base.py", line 116, in init_process self.wsgi = self.app.wsgi() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load return self.load_wsgiapp() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp return util.import_app(self.app_uri) File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/util.py", line 355, in import_app __import__(module) ImportError: No module named elcarweb.wsgi [2015-10-27 21:01:47 +0000] [5434] [INFO] Worker exiting (pid: 5434) Traceback (most recent call last): File "/home/tomek/Elcar/elcarweb/env/bin/gunicorn", line 11, in  sys.exit(run()) File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 74, in run WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/app/base.py", line 189, in run super(Application, self).run() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/app/base.py", line 72, in run Arbiter(self).run() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/arbiter.py", line 170, in run self.manage_workers() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/arbiter.py", line 473, in manage_workers self.spawn_workers() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/arbiter.py", line 537, in spawn_workers time.sleep(0.1 * random.random()) File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/arbiter.py", line 210, in handle_chld self.reap_workers() File "/home/tomek/Elcar/elcarweb/env/lib/python2.7/site-packages/gunicorn/arbiter.py", line 455, in reap_workers raise HaltServer(reason, self.WORKER_BOOT_ERROR) gunicorn.errors.HaltServer:  

    El último trackback es casi el mismo, pero antes de ver información requerida:

     ImportError: No module named elcarweb.wsgi 

    Si ve este error, la solución se ejecuta gunicorn con el --chdir=/your/app/dir .

    También tuve un error similar en Ubuntu 16.04, Django 1.11, usando systemd.

    Mi problema era que había dividido mi configuración en archivos separados; es decir: en lugar de tener todas las configuraciones en project / settings.py, tengo algunos archivos de configuración como project / settings / dev.py.

    Tuve que actualizar DJANGO_SETTINGS_MODULE en el archivo project / wsgi.py desde:

     os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings") 

    a

     os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings.dev") 

    entonces gunicorn trabajó.

    Tengo el mismo error. Gunicorn funcionaba cuando se ejecutaba como root, pero fallaba de esta manera cuando se ejecutaba como usuario sin privilegios. En mi caso instalo el módulo de ‘conjunto de datos’ de python con ‘conjunto de datos de instalación de pip’ y me arreglé los permisos en /usr/lib/python2.7/site-packages/dataset para que solo los pueda leer la cuenta raíz. En otro módulo instalado como dependencia así era normalidad.

    Arreglar:

     chmod -R a+rX /usr/lib/python2.7/site-packages/dataset* chmod -R a+rX /usr/lib/python2.7/site-packages/normality* 

    Otro problema fue con el paquete yaml autoinstalado por pip, pero no he encontrado exactamente qué. La solución fue reinstalar desde el paquete fedora:

     dnf -y install python-yaml 

    ejecutar guncorn con –preload puede ver el registro de errores, como este

     gunicorn app:application --preload -b -b 0.0.0.0:5000 

    Esto generalmente le dará un mensaje de error más detallado.