[Django] Invalid command 'import' mit mod_wsgi

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Wenn du virtualenv nutzt, dann mußt du das IMHO neu erstellen. Ansonsten mal alle *.pyc Dateien löschen...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Danke, die *.pyc-Dateien waren die Fehlerursache. :? Jetzt läufts wieder.

Grüße
Stephan
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

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.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

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.
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.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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.
Antworten