2012-08-13 31 views
5

Estoy ejecutando django + nginx + uwsgi. Por algún motivo, no puedo iniciar uWSGI sin configurar la opción de inicio, apuntando al entorno virtual. Cada vez que inicio uWSGI sin él, dice que no puede encontrar el módulo django.core.wsgi, como si la ruta de Python estuviera vacía (pero django 1.4 está instalado en todo el sistema).No se puede iniciar el servidor uWSGI sin virtualenv (ImportError)

¿Cómo puedo solucionarlo?

+1

No hay nada malo. Necesita usar la opción 'home' para especificar el entorno virtual en el que está instalado django. De lo contrario, uwsgi estará operando a nivel de todo el sistema, donde django no está instalado. Mire el [ejemplo de uwsgi] (http://projects.unbit.it/uwsgi/wiki/VirtualEnv). –

+1

@ TimmyO'Mahony si miras detenidamente mi pregunta, puedes ver que mencioné que django está instalado "en todo el sistema". – DataGreed

+0

Lo editaré para que quede más claro – DataGreed

Respuesta

15

Desde que me di en la cabeza con este problema también, vamos a escribir una respuesta para todos. :) El problema es que, cuando se inicia en modo emperador (todo el sistema), el proceso maestro uwsgi no puede (o no) cargar el entorno correcto para python (PYTHONPATH). Usando virtualenv especifica el entorno. Sin él, necesita establecer la variable pythonpath, incluso varias veces apuntando a las rutas python de todo el sistema.

A modo de ejemplo, para mi sistema es:

pythonpath = /usr/local/lib/python2.7/dist-packages 
pythonpath = /usr/lib/python2.7 

(utilizando la sintaxis INI)

+0

Me encuentro con este error en el sistema MacOS pero no en centos6 con el mismo archivo de configuración. Solucionarlo luego de agregar 'virtualenv' en el archivo de configuración. ¿Puedes explicar esta situación? El comando de ejecución es '/ path_to_venv/bin/uwsgi -y uwsgi.conf' –

+0

@SiminJie, lo siento, no uso MacOS. Y no lo usaría como servidor. –

Cuestiones relacionadas