Первый раз запускаю Django/WSGI, возникли некоторые проблемы

У меня установлен Python, я могу запускать скрипты в командной строке. Но я хочу создавать с его помощью веб-страницы и использовать фреймворк Django.

Я прочитал много документации о том, как настроить и запустить django. Большая часть работы была выполнена с помощью apt-get install, который установил все необходимое, но с конфигурацией vhost у меня возникли проблемы. В настоящее время я получаю сообщение об ошибке сервера 500, а в журнале ошибок я вижу ошибку импорта.

Вот полный файл vhost:

    <VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName friendflix.me
                ServerAlias www.friendflix.me
        DocumentRoot "/srv/www/friendflix.me/public_html/"
        ErrorLog /srv/www/friendflix.me/logs/error.log
            CustomLog /srv/www/friendflix.me/logs/access.log combined

            WSGIScriptAlias / /srv/www/friendflix.me/application/django.wsgi
      <Directory /srv/www/friendflix.me/application>
 Order allow,deny
Allow from all
  </Directory>

    <Location "/application">
SetHandler python-program
  PythonOption django.root /application
  PythonHandler django.core.handlers.modpython
  SetEnv DJANGO_SETTINGS_MODULE settings
PythonPath "['/srv/www/friendflix.me/application', '/srv/www/friendflix.me/publ$
PythonDebug On
</Location>

Alias /static /srv/www/friendflix.me/public_html/static
</VirtualHost>

Хвост файла error.log

[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]     self.load_middleware() 
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]   File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py", line 39, in load_middleware
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]     for middleware_path in settings.MIDDLEWARE_CLASSES:
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]   File "/usr/local/lib/python2.6/dist-packages/django/utils/functional.py", line 276, in __getattr__
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]     self._setup()
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]   File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 42, in _setup
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]     self._wrapped = Settings(settings_module)
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]   File "/usr/local/lib/python2.6/dist-packages/django/conf/__init__.py", line 89, in __init__
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194]     raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
[Sun Jun 19 21:28:07 2011] [error] [client 74.89.144.194] ImportError: Could not import settings 'settings' (Is it on sys.path?): No module named settings

Структура каталогов приложения (или хотя бы)

корень html

/srv/www/friendflix.me/public_html

корень приложения

/srv/www/friendflix.me/application

Конфигурация приложения Django/wsgi

/srv/www/friendflix.me/application/django.wsgi

Скрипт Django.wsgi

import os
import sys

sys.path.append('/srv/www/friendflix.me/application')

os.environ['PYTHON_EGG_CACHE'] = '/srv/www/friendflix.me/.python-egg'
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Любая помощь в исправлении этого была бы замечательной - спасибо! Богатый


person Richard Testani    schedule 20.06.2011    source источник
comment
Не могли бы вы опубликовать подробности ошибки импорта?   -  person AJ.    schedule 20.06.2011
comment
Ваша конфигурация усечена.   -  person Ignacio Vazquez-Abrams    schedule 20.06.2011
comment
пожалуйста, опубликуйте структуру каталогов вашего приложения   -  person Peter Long    schedule 20.06.2011
comment
Пожалуйста, включите свой django.wsgi скрипт. У него нет правильной настройки для sys.path.   -  person S.Lott    schedule 20.06.2011
comment
Почему у вас есть конфигурации как для mod_wsgi , так и для mod_python? Это обязательно вызовет проблемы.   -  person Daniel Roseman    schedule 20.06.2011


Ответы (1)


Из документации:

Значение DJANGO_SETTINGS_MODULE должно быть в синтаксисе пути Python, например. mysite.settings назначение-настроек
базовая конфигурация modpython

Итак, если имя вашего проекта (сайта) application:

SetEnv DJANGO_SETTINGS_MODULE application.settings
person manji    schedule 20.06.2011
comment
Итак, в моей ситуации имя моего сайта — application или friendflix.me? Что на самом деле определило это имя? - person Richard Testani; 20.06.2011
comment
mysite на самом деле должно быть именем вашего проекта django => пакет, в котором находится settings.py => имя папки, в которой живет ваш settings.py. - person manji; 20.06.2011