2010-08-23 17 views
6

Este es el error que consigo en mi registro de errores de Apache:no puede obtener mod_wsgi y Apache con Django a trabajar

[Sun Aug 22 16:52:06 2010] [error] [client 127.0.0.1] ImportError: No module named settings

Este es mi archivo .wsgi, por this blog post:

import sys 

sys.path.insert(0, '/home/wot/django-projects/aedo') 
import settings 
import django.core.management 
django.core.management.setup_environ(settings) 
utility = django.core.management.ManagementUtility() 
command = utility.fetch_command('runserver') 
command.validate() 
import django.conf 
import django.utils 

django.utils.translation.activate(django.conf.settings.LANGUAGE_CODE) 

import django.core.handlers.wsgi 
application = django.core.handlers.wsgi.WSGIHandler() 

He verificado el nombre de ruta doble y triple, y esa es de hecho la ruta a mi archivo de proyecto. He intentado hacer que esto funcione durante horas, y he hecho muchas búsquedas en Google. Estoy preguntando aquí como mi último recurso. ¡Estoy desesperado!

EDIT: Soy consciente de que hay cuestiones similares aquí en SA, y he leído a través de la mayoría de ellas, en vano

+0

Hay una gran probabilidad de que Django puede encontrar el archivo de configuración, pero no puede importarlo Django proporciona este error siempre que no pueda importar un archivo de configuración por el motivo que sea. Intenta agregar una 'configuración de importación' en tu archivo '.wsgi'. – Wolph

+0

¿Estás 100% seguro de que no cometiste un error tipográfico en el camino ni nada? ¿Y realmente tiene un 'settings.py' en el directorio'/home/wot/django-projects/aedo'? Uno u otro tiene que ser falso. – Wolph

+0

Ya tiene 'import settings' en su archivo WSGI. Él no está confiando en el método de variable de entorno DJANGO_SETTINGS_MODULE. –

Respuesta

2

¿Cuál es el resultado de la ejecución:

ls -las /home/wot/django-projects/aedo/ 

es el directorio y todos los archivos legibles para el usuario que ejecuta Apache? Si no lo son, puede obtener ese error.

También tenga cuidado con hablar y mirar a las diapositivas mencionados en:

http://blog.dscpl.com.au/2010/06/sydney-pycon-modwsgi-talk-slides.html

ya que analiza los problemas de permisos más.

+0

Sí, todo los archivos son legibles y ejecutables para todos los usuarios. Y gracias lo haré – skroth

2

No funciona cuando se pone:

import os, sys 
sys.path.append('/usr/local/django') # obs: path to django 
sys.path.append('/home/wot/django-projects/aedo') 
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

import django.core.handlers.wsgi 

application = django.core.handlers.wsgi.WSGIHandler() 

en su archivo django.wsgi?

+2

Eso no funcionaría ya que agregó el directorio del sitio a sys.path y no al directorio padre. –

+0

@Graham Dumpleton - cierto, corregido. Es porque copié de uno de mis proyectos usando pydev y usualmente tengo 2 veces el directorio (1 para el nombre del proyecto y 1 para src) como '.../django-projects/aedo/aedo/files.py' – laurent

2

intente cambiar

os.environ['DJANGO_SETTINGS_MODULE'] = 'aedo.settings' 

a

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

En realidad, yo estaba recibiendo este error demasiado y lo hice lo anterior. También ha cambiado

ROOT_URLCONF = 'appname.urls' 

a

ROOT_URLCONF = 'urls' 

espero que su settings.py está en el mismo directorio que el archivo wsgi para este proyecto.

0

Para mí tenía problemas de importación extraños, Python afirmó que Django no podía importar el Sitio ... Debido a que mi instalación pasó de ser un "servidor de ejecución python ..." a un entorno WSGI, los permisos eran realmente un problema.

sorprendido como yo ni siquiera cambiar el permiso en el paquete django.contrib.site, simplemente todos los archivos del proyecto a 755.

Cuestiones relacionadas