Развертывание приложения django на Apache mod_python - PullRequest
1 голос
/ 01 февраля 2009

Я закончил создание сайта в django под названием 'kazbah', и я пытаюсь развернуть его.

Весь код сайта 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 ]

2 голосов
/ 01 февраля 2009

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

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"

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

2 голосов
/ 01 февраля 2009

Для проекта, находящегося под /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>
1 голос
/ 01 февраля 2009

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

0 голосов
/ 01 февраля 2009

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

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

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

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

0 голосов
/ 01 февраля 2009

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

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

...