Seite 1 von 2

Verfasst: Montag 23. November 2009, 20:13
von jens
Dauerbaustelle hat geschrieben:Wenn ich die Django-Shell nutze, funktioniert das Importieren auch.
Startest du evtl. die shell mit einem anderen User, als hinterher von Apache?

Verfasst: Montag 23. November 2009, 20:48
von Dauerbaustelle
jens hat geschrieben:Startest du evtl. die shell mit einem anderen User, als hinterher von Apache?
Bei mir läuft Nginx mit mod_wsgi, aber ja, die WSGI-Prozesse laufen afaik unter dem nginx-User. Allerdings habe ich a) bei keinem anderen Django-Projekt diese Probleme und b) funktionieren die Imports in derShell mit jedem anderen Nutzer.

Vielleicht habe ich auch in meinen Settings Murks gemacht? Ihr könnt ja mal reinschauen.

Verfasst: Montag 23. November 2009, 21:25
von ms4py
In der settings vom Tutorial sind folgende Dinge anders:

Code: Alles auswählen

ROOT_URLCONF = 'mysite.urls'

Code: Alles auswählen

INSTALLED_APPS = (
    ...
    'mysite.polls',
)
``mysite`` ist in diesem Fall dein ``myproject``

Verfasst: Dienstag 24. November 2009, 07:55
von jens
Dauerbaustelle hat geschrieben:Vielleicht habe ich auch in meinen Settings Murks gemacht? Ihr könnt ja mal reinschauen.
Vielleicht hilft dir das weiter: http://code.djangoproject.com/ticket/11667 Ich weiß allerdings jetzt nicht, ob das importieren der settings mit abgedeckt ist...
Auf jeden Fall ist es IMHO dumm, das django an einigen Stellen keinen Vollständigen traceback hinterläßt. Siehe auch: http://jensdiemer.de/de/Blog/23/django- ... me-foobar/

Dein from geheim import * würde ich ehr ganz unten in die settings.py schreiben, damit man alle vorgaben "überschreiben" kann. Außerdem wäre, statt einem schlichten print e, sowas hilfreicher:

Code: Alles auswählen

try:
    from geheim import *
except ImportError, e:
    import traceback
    print traceback.format_exc()

Verfasst: Dienstag 24. November 2009, 11:45
von ms4py
Hier noch die Erklärung zu meiner Antwort oben:
http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango hat geschrieben:If you have been using the Django development server and have made use of the fact that it is possible when doing explicit imports, or when referencing modules in 'urls.py', to leave out the name of the site and use a relative module path, you will also need to add to sys.path the path to the site package directory itself.

sys.path.append('/usr/local/django')
sys.path.append('/usr/local/django/mysite')
Du kannst also entweder deine Settings korrigieren oder das WSGI.

Verfasst: Dienstag 24. November 2009, 18:57
von Dauerbaustelle
Okay Jungs, ich werd das mal ausprobieren. Wenn der Körper den Geist wieder freigibt :-)

Verfasst: Mittwoch 25. November 2009, 15:08
von Dauerbaustelle
Das ist ja seltsam. Sobald ich die Imports mit `myproject.myapp` und `myproject.urls` mache, und den Datenbankpfad absolut angebe, funktioniert alles. Komisch, dieses Verhalten habe ich noch nicht gekannt.

Werde mir den Thread aber auf jeden Fall mal merken, da steckt ne ganze Menge nützliches Bugfixing-Wissen drin :-)