2010-08-23 16 views
6

Dies ist der Fehler, den ich in meinem Apache Fehlerprotokoll erhalten:Kann nicht mod_wsgi und Apache mit Django arbeiten

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

Das ist meine .wsgi Datei per 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() 

Ich habe doppelt und dreifach den Pfadnamen überprüft, und das ist tatsächlich der Pfad zu meiner Projektdatei. Ich habe stundenlang versucht, das zur Arbeit zu bringen, und habe viel gegoogelt. Ich frage hier nach meinem letzten Ausweg. Ich bin verzweifelt!

EDIT: Ich bin mir bewusst, dass es hier ähnliche Fragen auf SA, und ich habe durch fast alle von ihnen lesen, ohne Erfolg

+0

Es gibt eine faire Chance, dass Django Ihre Einstellungsdatei finden kann, aber es kann nicht Importieren Sie es. Django gibt diesen Fehler immer dann aus, wenn eine Einstellungsdatei aus irgendeinem Grund nicht importiert werden kann. Versuchen Sie also, in Ihrer '.wsgi'-Datei' Importeinstellungen' hinzuzufügen. – Wolph

+0

Sind Sie 100% sicher, dass Sie keinen Tippfehler auf dem Pfad gemacht haben oder so? Und du hast tatsächlich eine 'settings.py' im Verzeichnis'/home/wot/django-projects/aedo'? Der eine oder der andere muss falsch sein. – Wolph

+0

Er hat bereits Importeinstellungen in seiner WSGI-Datei. Er verlässt sich nicht auf die Umgebungsvariablenmethode DJANGO_SETTINGS_MODULE. –

Antwort

2

Was ist die Ausgabe von Laufen:

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

Ist das Verzeichnis und alle Dateien lesbar Benutzer, der Apache wie läuft? Wenn Sie nicht sind, können Sie diesen Fehler bekommen.

auch reden beobachten und sich auf Folien schauen erwähnt unter:

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

wie es weiter Probleme mit Berechtigungen diskutiert.

+0

Yeah alle Die Dateien sind für alle Benutzer lesbar und ausführbar. Und danke wird es tun – skroth

2

Es funktioniert nicht, wenn Sie sagen:

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() 

in Ihrer django.wsgi-Datei?

+2

Das würde nicht funktionieren, da Sie das Site-Verzeichnis zu sys.path und nicht das übergeordnete Verzeichnis hinzugefügt haben. –

+0

@Graham Dumpleton - richtig, korrigiert. Es ist, weil ich von einem meiner Projekte mit pydev kopierte und normalerweise habe ich zweimal das Verzeichnis (1 für den Projektnamen und 1 für src) wie '.../django-projekte/aedo/aedo/files.py' – laurent

2

try Wechsel

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

zu

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

Eigentlich zu diesem Fehler war ich immer und ich habe das oben. Ich habe auch

ROOT_URLCONF = 'appname.urls' 

zu

ROOT_URLCONF = 'urls' 

Ich hoffe, Ihre settings.py als wsgi Datei für dieses Projekt im selben Verzeichnis ist.

0

Für mich hatte ich seltsame Importprobleme, behauptete Python Django konnte Site nicht importieren ... Da meine Installation von einem reinen "Python Runserver ..." in eine WSGI-Umgebung ging, waren die Berechtigungen tatsächlich ein Problem.

überrascht, als ich nicht einmal die Erlaubnis, auf dem django.contrib.site Paket nicht geändert haben, nur alle Dateien des Projekts zur 755.

Verwandte Themen