Запуск примера учебника Django с помощью mod_wsgi?

Я установил wsgi (mod_wsgi) и смог запустить простое приложение, вызвав http://localhost/myapp.

WSGIScriptAlias /myapp /Library/WebServer/Documents/wsgi/scripts/myapp.wsgi
def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World! WSGI working perfectly!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

Как запустить пример django?

Я нашел этот пример, который имеет простой пример.

import os
import sys

os.environ['DJANGO_SETTINGS_MODULE'] = 'my.settings' # ???

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
mysite/
    __init__.py
    manage.py
    settings.py
    urls.py

Django сгенерировал три файла python, и я вижу файл settings.py с информацией об установке. Проект находится в каталоге /ABC/DEF/mysite.

Я изменил код следующим образом и назвал его myapp.wsgi.

import os
import sys

sys.path.append('/ABC/DEF/mysite') 
sys.path.append('/ABC/DEF')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

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

Несмотря на то, что я мог запустить исходный пример django из учебника, в котором используется "python manage.py runningerver 8080", я получил сообщение об ошибке измененный пример с mod_wsgi.

Файл apache2/log имеет следующее.

[Wed Nov 24 09:02:41 2010] [error] [client 127.0.0.1] ImportError: Could not import settings 'mysite.settings' (Is it on sys.path? Does it have syntax errors?): No module named mysite.settings

Насколько мне известно, имя каталога/проекта - mysite, и у него есть settings.py. И каталог находится в sys.path. Итак, я не знаю, почему mysite.settings не найден.

Что случилось с моим myapp.wsgi?

решаемые

Следующий код работает нормально. И еще одна вещь, которую я изменил, - проект django не должен находиться в моем домашнем каталоге, когда я переместил проект в каталог www doc, все работает нормально.

import os
import sys

mysite = 'SOMEWEHRE/django'
if mysite not in sys.path:sys.path.insert(0,mysite)
mysite = 'SOMEWEHRE/scripts'
if mysite not in sys.path:sys.path.insert(0,mysite)

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

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

Ответ 1

Что вам нужно сделать, это добавить либо каталог проекта, либо каталог, в котором находится проект, в sys.path, а затем указать настройки на mysite.settings, если вы сделали последнее.

EDIT:

"Настройки Django"

ИЗМЕНИТЬ 2:

Как установить модуль настроек Django

ИЗМЕНИТЬ 3:

Модуль настроек должен быть модулем, а не именем файла. И если он 'settings', вам не нужно его устанавливать.