Развертывание приложения django на Apache mod_python

Я закончил создание сайта в Джанго под названием "Казба", и я пытаюсь развернуть его.

Весь код для сайта kazbah находится в /home/git/DjangoProjects/kazbah, и мой httpd.conf выглядит так:

<Location "/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE kazbah.settings
    PythonDebug On
    PythonPath "['/home/git/DjangoProjects'] + sys.path"
</Location> 

Я получаю следующую ошибку, хотя:

ImportError: Не удалось импортировать настройки "kazbah.settings" (это на sys.path? Есть ли синтаксические ошибки?): Нет модуля с именем kazbah.settings

Есть идеи, почему этот нуб не работает?

5 ответов

Я видел это несколько раз. Каждый раз, потому что я неправильно установил эту строку:

SetEnv DJANGO_SETTINGS_MODULE kazbah.settings

Даже при том, что это выглядело правильно, Django (фактически python) искал одну папку от той, которую я намеревался. Попробуйте настроить его, изменив его на:

SetEnv DJANGO_SETTINGS_MODULE settings

Также вы можете настроить здесь:

PythonPath "['/home/git/DjangoProjects'] + sys.path"

Возможно, вам нужно установить его на:

PythonPath "['/home/git/DjangoProjects/kazbah'] + sys.path"

или что-то подобное. Не видя фактическую настройку папки, трудно точно знать.:)

Для проекта, отдыхающего под /var/www/bbb (называется "bbb"), у меня есть следующий набор в файле конфигурации:

<Location "/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE bbb.settings
        PythonPath "['/var/www/', '/var/www/bbb/'] + sys.path"
        PythonDebug On
</Location>

Луи, ваша конфигурация выглядит точно так же, как я использовал до перехода на mod_wsgi, поэтому должно быть что-то еще не так. Может быть, вам не хватает файла __init__.py в /home/git/DjangoProjects/kazbah?

Я почти уверен, что вы можете сделать sys.path - это в документации по django.

Я мог бы перейти на django doc http://docs.djangoproject.com/en/dev/howto/deployment/modpython/ когда я пробовал другой учебник (который, я думаю, немного устарел) - http: //www.jeffbaier.com / 2007/07/26 / установка-Джанго-на-ан-убунту-Linux-сервер /

Хорошо, возможно у вас есть синтаксическая ошибка в вашем файле настроек.

Попробуй это:

$ cd /home/git/DjangoProjects/kazbah
$ python
>>> import settings

Если вы сделаете это, вы получите гораздо лучшее сообщение об ошибке, если есть какие-либо ошибки.

Другие вопросы по тегам