2011-11-23 14 views
7

Ho un progetto Django con una app chiamata subscribe. Nella radice urls.py utilizzo incluso da subscribe di urls.py.Django uwsgi import error

ho messo a INSTALLED_APPSsubscribe ed in s' urls.pysubscribe Io uso subscribe.views.<name> per chiamare i miei punti di vista. Quando il server viene eseguito come python manage.py runserver localmente tutto funziona correttamente. Ma quando il server gira su nginx + uwsgi con virtualenv, ho ImportError: No module named subscribe. Quando cambio subscribe in project.subscribe in INSTALLED_APPS e in subscribe 's urls.py sostituendo subscribe.views.<name> in project.subscribe.views.<name> tutto funziona correttamente.

uwsgi config:

[uwsgi] 
socket = 127.0.0.1:9003 
workers = 2 
master = true 
virtualenv = /home/user/python 
chdir = /home/user 
env = DJANGO_SETTINGS_MODULE=project.settings 
module = django.core.handlers.wsgi:WSGIHandler() 
daemonize = /home/user/uwsgi.log 

Perché dovrei utilizzare l'importazione percorso assoluto e come posso cambiare a tornare sul relativo nginx + uwsgi con virtualenv?

+0

aggiungere 'project' al percorso pitone sia attraverso lo script di avvio virtualenv o in altro modo –

+0

mio script di avvio già contenere it: sys.path.insert (0, '/ home/utente/progetto') – ZedXter

+0

Django minaccia le cartelle con __init__.py come pacchetti e yo impostate '/ home/user/project' come directory root nello script' wsgi', quindi dovrebbe funzionare come 'python manage.py runserver' funziona. –

risposta

7

La tua configurazione uwsgi dovrebbe includere la direttiva pythonpath=/path/where/lives/settings.py/, quindi l'interprete python saprà dove trovare le tue app.

Trova ulteriori informazioni sulle opzioni di configurazione uwsgi:

+0

Grazie per la tua risposta e link molto utili! – ZedXter

+0

Af spendere infinite ore cercando di capirlo, la formulazione della tua risposta ha aiutato. Molte grazie :) – Pztar