Seite 1 von 1

[Django] Invalid command 'import' mit mod_wsgi

Verfasst: Freitag 2. September 2011, 13:33
von Mawilo
Hallo,

nach einem Rechnerwechsel und dem Wechsel von Python 2.6 auf 2.7 versuche ich, eine Django-Webseite lokal wieder zum Laufen zu bringen.
Als Testumgebung verwende ich XAMPP. OS ist Windows Vista. Python wurde der Variable PATH zugefügt und funktioniert.
Leider kann ich aber den Apache nicht starten. Ich bekomme immer nur folgende Fehlermeldung:

Code: Alles auswählen

Syntax error on line 2 of C:/pages/AIS/apache/mod.wsgi:
Invalid command 'import', perhaps misspelled or defined by a module not included in the server configuration
Die Datei mod_wsgi.so(für Apache2.2 und Py2.7) habe ich von http://code.google.com/p/modwsgi/wiki/D ... tware?tm=2 geladen.
In der httpd.conf habe ich folgende zwei Zeilen aufgenommen:

Code: Alles auswählen

LoadModule wsgi_module modules/mod_wsgi.so
Include "C:/pages/AIS/apache/mod.wsgi"
In der apache_wsgi.conf habe ich auch:

Code: Alles auswählen

WSGIScriptAlias / "C:/pages/AIS/apache/mod.wsgi"
Und hier die mod.wsgi:

Code: Alles auswählen

import os
import sys

sys.path.append('C:/python27/lib/site-packages/django')
sys.path.append('C:/pages')

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

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Wenn ich den Apache ohne die Include-Anweisung in der httpd.conf starte, sieht alles normal aus. In der Log steht dann u.a.:

Code: Alles auswählen

[Fri Sep 02 14:17:50 2011] [warn] mod_wsgi: Compiled for Python/2.7.
[Fri Sep 02 14:17:50 2011] [warn] mod_wsgi: Runtime using Python/2.7.2.
und

Code: Alles auswählen

[Fri Sep 02 14:17:50 2011] [info] mod_wsgi (pid=7256): Initializing Python.
[Fri Sep 02 14:17:51 2011] [info] mod_wsgi (pid=7256): Attach interpreter ''.
Habe ich da noch irgendetwas übersehen? Eigentlich sollten doch keine weiteren Apache-Module notwendig sein. Aber warum kennt der dann das 'import' nicht?

Grüße
Stephan

Re: [Django] Invalid command 'import' mit mod_wsgi

Verfasst: Freitag 2. September 2011, 13:48
von jens
Wenn du virtualenv nutzt, dann mußt du das IMHO neu erstellen. Ansonsten mal alle *.pyc Dateien löschen...

Re: [Django] Invalid command 'import' mit mod_wsgi

Verfasst: Freitag 2. September 2011, 14:02
von Mawilo
Danke, die *.pyc-Dateien waren die Fehlerursache. :? Jetzt läufts wieder.

Grüße
Stephan

Re: [Django] Invalid command 'import' mit mod_wsgi

Verfasst: Montag 5. September 2011, 08:50
von Mawilo
Ich war leider etwas vorschnell und hatte eine Raute in der httpd.conf übersehen. Sobald ich die Datei mod.wsgi wieder aktiviere, ist der Fehler wieder da. Das Löschen der *.pyc-Dateien hat doch nicht geholfen. mod_alias und mod_vhost_alias sind aktiv.

Re: [Django] Invalid command 'import' mit mod_wsgi

Verfasst: Montag 5. September 2011, 09:01
von jens
Irgendeine Komponente hat den Wechsel von Python 2.6 auf 2.7 vielleicht nicht mit gemacht.

virtualenv hast du nicht genutzt? Vielleicht veraltete Python module per easy_install/pip im globalen Python installiert?

Re: [Django] Invalid command 'import' mit mod_wsgi

Verfasst: Montag 5. September 2011, 09:16
von Mawilo
Nein, virtualenv habe ich nicht genutzt. Python incl. der benötigten Module habe ich auf dem Rechner neu aufgespielt. Kann es sein, das die vorkompilierte Version von mod_wsgi für Py2.7 einen Treffer hat? Anders kann ich es mir nicht erklären.

Re: [Django] Invalid command 'import' mit mod_wsgi

Verfasst: Montag 5. September 2011, 09:17
von BlackJack
Ich denke den Fehler bei Python-Code oder -Versionen zu suchen ist schon viel zu spät angesetzt. Die Fehlermeldung kommt doch bei der ``C:/pages/AIS/apache/mod.wsgi`` und da wird sich über das ``import`` beklagt. Das ist aber keine Fehlermeldung von Python sondern irgendetwas anderes scheint zu versuchen den Code zu interpretieren und kann mit ``import`` nichts anfangen.

Re: [Django] Invalid command 'import' mit mod_wsgi

Verfasst: Montag 5. September 2011, 09:23
von jens
Mawilo hat geschrieben:Als Testumgebung verwende ich XAMPP. OS ist Windows Vista.
IMHO ist es einfacher mit virtualbox einen kleinen Linux Server auf zu setzten.

Re: [Django] Invalid command 'import' mit mod_wsgi

Verfasst: Montag 5. September 2011, 14:01
von /me
Mawilo hat geschrieben:

Code: Alles auswählen

LoadModule wsgi_module modules/mod_wsgi.so
Include "C:/pages/AIS/apache/mod.wsgi"
Das Include ist merkwürdig. Mach das mal weg.

Etwas länger: Du bindest damit die Datei mod.wsgi in die Apache-Konfiguration ein. Die Datei enthält aber Python-Code und ist sicher kein Teil der Apache-Konfiguration. Als WSGIScriptAlias hingegen ist die Datei korrekt.