Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Переменная DJANGO_SETTINGS_MODULE при развертывании с Apache [RSS Feed]

#1 Май 31, 2009 15:54:22

Ajunta
От:
Зарегистрирован: 2009-05-31
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменная DJANGO_SETTINGS_MODULE при развертывании с Apache

В мануале DjangoBook в главе про развертывание сказано:

<Location “/”>
SetHandler mod_python
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonDebug On
</Location>
Вместо mysite.settings необходимо вписать имя модуля настроек Django для вашего сайта.
Никак не могу нагуглть внятного объяснения что это за настройки Django в переменной DJANGO_SETTINGS_MODULE? Где они лежит по-дефолту хотя бы…



Офлайн

#2 Май 31, 2009 16:08:49

lizzard
От:
Зарегистрирован: 2009-03-05
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменная DJANGO_SETTINGS_MODULE при развертывании с Apache

Может это myproject/settings.py?



Офлайн

#3 Май 31, 2009 16:21:35

Ajunta
От:
Зарегистрирован: 2009-05-31
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменная DJANGO_SETTINGS_MODULE при развертывании с Apache

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 не менял.



Офлайн

#4 Май 31, 2009 22:56:10

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Переменная DJANGO_SETTINGS_MODULE при развертывании с Apache

Ajunta
Пробовал указывать абсолютным и относительным путем. В любом случае конец лога ошибки заканчивается на
Путь не надо указывать в DJANGO_SETTINGS_MODULE. Там должен быть import path к настройкам, т.е. имя mysite.settings должно импортироваться. Скорей всего у вас просто не указана директория где лежит проект в переменной $PYTHONPATH.



Офлайн

#5 Май 31, 2009 22:59:20

lizzard
От:
Зарегистрирован: 2009-03-05
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменная DJANGO_SETTINGS_MODULE при развертывании с Apache

У меня вроде работало с таким конфигом:

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



Офлайн

#6 Июнь 2, 2009 18:04:25

Ajunta
От:
Зарегистрирован: 2009-05-31
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменная DJANGO_SETTINGS_MODULE при развертывании с Apache

Несколько подробнстей:
сайт (__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>
Пытаюсь зайти по адресу: http://localhost:9980/testhead/ выдается отладочная страница с ошибкой:
ImportError at /testhead/
No module named testhead.urls
Для теста действовал по книге DjangoBook, создал файл:
$ 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)
Далее отредактировал схему URL:
$ cat urls.py
from django.conf.urls.defaults import *
from testhead.test current_datetime

urlpatterns = patterns('',
(r'^time/$', current_datetime),
)
Почему же он говорит, что схемы нет? Файл urls.py есть в той же директории, что и настройки settings.py, однако после правки конфига Apache настройки судя по всему подхватились нормально.



Офлайн

#7 Июнь 3, 2009 05:43:04

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Переменная DJANGO_SETTINGS_MODULE при развертывании с Apache

Ajunta
$ cat urls.py
from django.conf.urls.defaults import *
from testhead.test current_datetime

urlpatterns = patterns('',
(r'^time/$', current_datetime),
)
У вас ошибка в urls.py, во второй строчке.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#8 Июнь 3, 2009 08:57:13

Ajunta
От:
Зарегистрирован: 2009-05-31
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменная DJANGO_SETTINGS_MODULE при развертывании с Apache

PooH
У вас ошибка в urls.py, во второй строчке.
Исправил на:
$ cat urls.py
from django.conf.urls.defaults import *
from testhead.test import current_datetime

urlpatterns = patterns('',
(r'^time/$', current_datetime),
)
Однако ситуация не изменилась - по прежнему утверждает, что “ImportError: No module named testhead.urls” :-(



Офлайн

#9 Июнь 3, 2009 10:13:29

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменная DJANGO_SETTINGS_MODULE при развертывании с Apache

Ajunta
Однако ситуация не изменилась - по прежнему утверждает, что “ImportError: No module named testhead.urls” :-(
И правильно делает. Проект лежит в /home/creo/www/testhead, который и прописан в sys.path. Соответственно при импортировании testhead.urls будет попытка импортировать /home/creo/www/testhead/testhead/urls.py, которого как раз и нет.
Исправь настройки:
SetEnv DJANGO_SETTINGS_MODULE testhead.settings
PythonDebug On
PythonPath "['/home/creo/www/'] + sys.path"



Офлайн

#10 Июнь 3, 2009 10:23:50

Ajunta
От:
Зарегистрирован: 2009-05-31
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Переменная DJANGO_SETTINGS_MODULE при развертывании с Apache

slivlen
Исправь настройки:
Вот оно! Ну наконец-то заработало… Спасибо, slivlen!



Офлайн

  • Начало
  • » Django
  • » Переменная DJANGO_SETTINGS_MODULE при развертывании с Apache[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version