Django Gunicorn Wsgi

Hola, estoy intentando integrar mi aplicación django 1.4.1 con Gunicorn 0.14.6. Arranco el servidor gunicorn desde la línea de comandos así.

gunicorn -c /home/code/gunicorn_config.py 

Me sale este rastreo

 Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 459, in spawn_worker worker.init_process() File "/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 99, in init_process self.wsgi = self.app.wsgi() File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py", line 101, in wsgi self.callable = self.load() File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 24, in load return util.import_app(self.app_uri) File "/usr/local/lib/python2.7/dist-packages/gunicorn/util.py", line 292, in import_app app = eval(obj, mod.__dict__) File "", line 1, in  NameError: name 'application' is not defined 

¿A dónde me voy mal? ¿Cuál es esta variable de application y dónde necesito modificar esto?

Además, ya que estoy usando Django1.4.1. Ya tengo un archivo wsgi.py en mi proyecto, ¿necesito cambiar eso?

ACTUALIZACIÓN: aquí está el contenido de mi archivo gunicorn_config.py

     import os import sys import multiprocessing def app_path(): sys.path.append('/home/code/po/') sys.path.append('/home/code/po/ball/') return def num_cpus(): cpus = 0 try: cpus = os.sysconf("SC_NPROCESSORS_ONLN") except: cpus = multiprocessing.cpu_count() if cpus: return cpus else: return 3 #defining the behavior of gunicorn app_path() bind = "127.0.0.1:8080" workers = num_cpus()*2 + 1 debug = True daemon = False accesslog = '/home/code/logs/guni_access.log' errorlog = '/home/code/logs/guni_error.log' loglevel = 'debug' django_settings = '/home/code/po/po/' pythonpath = '/home/code/po/' 

    @moopet: ni siquiera creo que se wsgi.py archivo wsgi.py , ¿cómo hago para que gunicorn elija ese archivo?

    Tu django_settings es incorrecto. django_settings debe tener la forma de una importación de módulo de Python que se puede importar desde la ruta de Python que estableció. Asi que

     pythonpath = '/home/code/po' django_settings = 'po.settings' 

    Para elaborar un poco más, la application es la variable predeterminada (que debería ser un objeto de aplicación WSGI) que gunicorn intentará importar desde el módulo Python que suministre.

    Así que pensarlo de otra manera. Digamos que estabas tratando de ejecutar una aplicación simple de wsgi Flask. La aplicación WSGI real se definió como una application y vivió dentro de /home/code/views.py . Entonces lo siguiente empezaría a servirlo manualmente con gunicorn.

     export PYTHONPATH=/home/code gunicorn -w 2 views:application 

    Así que la aplicación variable dentro del módulo de vistas. Puedes leer acerca de cómo Django te proporciona el objeto de la aplicación .

    Puede ser que necesites apuntar gunicorn al módulo po.wsgi . Es un poco difícil de decir a partir de la información proporcionada hasta el momento. Si ese módulo se creó correctamente, debería contener una variable llamada application

    Compruebe si otro paquete que ha instalado ya contiene un archivo llamado wsgi.py. (gevent lo hace). Si es así, es probable que se esté cargando el archivo wsgi.py incorrecto. Intente cambiar el nombre de su archivo wsgi.py a otra cosa (por ejemplo, app_wsgi.py) y agregue la ejecución de su aplicación usando

     gunicorn -c /home/code/gunicorn_config.py app_wsgi