Форум сайта python.su
В мануале DjangoBook в главе про развертывание сказано:
<Location “/”>Никак не могу нагуглть внятного объяснения что это за настройки Django в переменной DJANGO_SETTINGS_MODULE? Где они лежит по-дефолту хотя бы…
SetHandler mod_python
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonDebug On
</Location>
Вместо mysite.settings необходимо вписать имя модуля настроек Django для вашего сайта.
Офлайн
Может это myproject/settings.py?
Офлайн
lizzardПробовал указывать абсолютным и относительным путем. В любом случае конец лога ошибки заканчивается на
Может это myproject/settings.py?
ImportError: Could not import settings ‘settings.py’ (Is it on sys.path? Does it have syntax errors?): No module named settings.pyСам файл settings.py не менял.
Офлайн
AjuntaПуть не надо указывать в DJANGO_SETTINGS_MODULE. Там должен быть import path к настройкам, т.е. имя mysite.settings должно импортироваться. Скорей всего у вас просто не указана директория где лежит проект в переменной $PYTHONPATH.
Пробовал указывать абсолютным и относительным путем. В любом случае конец лога ошибки заканчивается на
Офлайн
У меня вроде работало с таким конфигом:
<Location “/mpg/”>
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mpg.settings
PythonOption django.root /mpg
PythonDebug On
PythonPath " + sys.path"
</Location>
Офлайн
Несколько подробнстей:
сайт (__init__.py manage.py settings.py и т.д.) располагается в /home/creo/www/testhead т.е. не в корне для апача.
Настройки в apache2.conf:
<Location "/testhead/">
SetHandler mod_python
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE settings
PythonDebug On
PythonPath "['/home/creo/www/testhead'] + sys.path"
</Location>
ImportError at /testhead/Для теста действовал по книге DjangoBook, создал файл:
No module named testhead.urls
$ cat test.py
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)
$ cat urls.py
from django.conf.urls.defaults import *
from testhead.test current_datetime
urlpatterns = patterns('',
(r'^time/$', current_datetime),
)
Офлайн
AjuntaУ вас ошибка в urls.py, во второй строчке.$ cat urls.py
from django.conf.urls.defaults import *
from testhead.test current_datetime
urlpatterns = patterns('',
(r'^time/$', current_datetime),
)
Офлайн
PooHИсправил на:
У вас ошибка в urls.py, во второй строчке.
$ cat urls.py
from django.conf.urls.defaults import *
from testhead.test import current_datetime
urlpatterns = patterns('',
(r'^time/$', current_datetime),
)
Офлайн
AjuntaИ правильно делает. Проект лежит в /home/creo/www/testhead, который и прописан в sys.path. Соответственно при импортировании testhead.urls будет попытка импортировать /home/creo/www/testhead/testhead/urls.py, которого как раз и нет.
Однако ситуация не изменилась - по прежнему утверждает, что “ImportError: No module named testhead.urls” :-(
SetEnv DJANGO_SETTINGS_MODULE testhead.settings
PythonDebug On
PythonPath "['/home/creo/www/'] + sys.path"
Офлайн
slivlenВот оно! Ну наконец-то заработало… Спасибо, slivlen!
Исправь настройки:
Офлайн