Probleme bei der Konfiguration mit django und mod_wsgi
Habe ich Probleme auf immer django um die Arbeit auf apache 2.2 mit mod_wsgi.
Django ist installiert und mod_wsgi zu.
Ich kann sogar sehen, wie eine 404-Seite beim Zugriff auf den Pfad und ich kann mich anmelden, um django-admin.
Aber wenn ich installieren möchte das tagging-Modul bekomme ich folgende Fehlermeldung:
Traceback (most recent call last):
File "setup.py", line 49, in <module>
version_tuple = __import__('tagging').VERSION
File "/home/jim/django-tagging/tagging/__init__.py", line 3, in <module>
from tagging.managers import ModelTaggedItemManager, TagDescriptor
File "/home/jim/django-tagging/tagging/managers.py", line 5, in <module>
from django.contrib.contenttypes.models import ContentType
File "/usr/lib/python2.5/site-packages/django/contrib/contenttypes/models.py", line 1, in <module>
from django.db import models
File "/usr/lib/python2.5/site-packages/django/db/__init__.py", line 10, in <module>
if not settings.DATABASE_ENGINE:
File "/usr/lib/python2.5/site-packages/django/utils/functional.py", line 269, in __getattr__
self._setup()
File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 40, in _setup
self._wrapped = Settings(settings_module)
File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 75, in __init__
raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
ImportError: Could not import settings 'mysite.settings' (Is it on sys.path? Does it have syntax errors?): No module named mysite.settings
Meine httpd.conf:
Alias /media/ /home/jim/django/mysite/media/
<Directory /home/jim/django/mysite/media>
Order deny,allow
Allow from all
</Directory>
Alias /admin/media/ "/usr/lib/python2.5/site-packages/django/contrib/admin/media/"
<Directory "/usr/lib/python2.5/site-packages/django/contrib/admin/media/">
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias /dj /home/jim/django/mysite/apache/django.wsgi
<Directory /home/jim/django/mysite/apache>
Order deny,allow
Allow from all
</Directory>
Mein django.wsgi:
import sys, os
sys.path.append('/home/jim/django')
sys.path.append('/home/jim/django/mysite')
os.chdir('/home/jim/django/mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Ich versuche zu bekommen dies funktioniert seit ein paar Tagen und haben Lesen mehrere blogs und Antworten hier auf damit aber nichts funktionierte.
Edit:
Nun versuchte ich es mit in diesem blog-post und meine wsgi-Datei sieht nun wie folgt aus:
import sys
sys.path.insert(0, '/home/jim/django/mysite')
sys.path.insert(0, '/home/jim/django')
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()
admin ist immer noch Arbeit, aber ich bin immer die gleiche Fehlermeldung, wenn ich versuche zu installieren, das tagging-Modul.
Spivak /home/jim/django/mysite/settings.py
InformationsquelleAutor Jimbo | 2010-04-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste,
Um sicherzustellen, dass es kein Apache/mod-wsgi-Einstellung problem, Sie können führen Sie den server für Entwicklung von der Produktions-Maschine
Dann mit Ihrem browser
Müssen Sie sehen, genau das gleiche Verhalten.
Dann,
Für das Debuggen dieses Problems:
Auf der python-shell auf Ihrem server, den Sie versuchen
import tagging
. Klar, aus Ihrer traceback,import tagging
ist, wo es einen Fehler auslösen, und das ist, warum, Einstellungen können nicht importiert werden.Dann löschen Sie Einfach das Paket mit tagging und eine frische Installation machen, indem Sie den folgenden Befehl, der weiß, wie Pakete zu installieren, gut.
.
Jimbo: das ist genau Das, was ich vorhergesagt. Sie können jetzt Lesen Sie meine Antworten sorgfältig durch, um Ihr problem zu lösen!
nie benutzt pip vor, aber es funktionierte. weiß nicht, was das problem verursacht. Ich hoffe, es war tagging-spezifische, so dass ich don ' T haben das gleiche problem mit einem anderen Paket später.. danke
InformationsquelleAutor Lakshman Prasad
Haben Sie gelesen Graham Dumpleton ist blog-post auf Django WSGI? Es hat einen ziemlich guten job zu beschreiben, einige Allgemeine Probleme bei der Konfiguration, und speziell berührt
mysite.settings
vs.settings
.UPDATE: Bitte Lesen Sie Graham Dumpleton hervorragenden Kommentaren unten.
UPDATE 2: Da beide, Graham und becomingGuru haben darauf hingewiesen, dass das problem nicht mit WSGI überhaupt. Es ist vielmehr ein problem mit der installation von
django-tagging
. Nehmen becomingGuru Beratung und Nutzungpip
zu installierendjango-tagging
.Immer noch das gleiche problem :/
Dann haben Sie wahrscheinlich ein problem mit Berechtigungen. Apache läuft als ein spezieller Benutzer, und nicht Sie. Also die Verzeichnisse, in denen Django-Website, sowie alle übergeordneten Verzeichnisse bis zu diesem Punkt, müssen gut zugänglich sein, um die Apache-Benutzer. Wenn Sie rwx------ auf Ihrem Girokonto, dann wird Apache nicht in der Lage zu sehen, innerhalb der Sie Ihr Konto.
Alternativ, wenn die Website funktioniert, aber nur nicht beim hinzufügen dieses, dann ist Sie möglicherweise einfach eingeführt haben, ein syntax-Fehler in der Einstellungen-Datei. Post-Abschnitt der Einstellungen-Datei, die Sie geändert.
Hmmm, Nein. Da die zweite WSGI-import-Methode importiert Einstellungen in WSGI-Skript-Datei, wenn es ein syntax-Fehler drin sind, sollte man eine andere Botschaft. BTW, der blog-post nicht sagen, dass Sie '/home/jim/django' , sys.Weg, nur das site-Verzeichnis selbst. Es sollte keine Rolle spielen, in diesem Fall aber. Wie auch immer, egal, wie gerade realisiert, dass die ursprüngliche Fehlermeldung ist auch nicht von innen mod_wsgi. Es wird von python aufgerufen wird, "setup.py" direkt. Wo machst du das? Sieht aus wie Sie haben nicht PYTHONPATH richtig, wenn durch die Ausführung auf der Kommandozeile. Das WSGI-Zeug ist irrelevant.
InformationsquelleAutor Hank Gay