Baby шагает к решению с помощью django и mod-wsgi на ОС - PullRequest
2 голосов
/ 25 февраля 2010

Я использую apache / os x и обслуживаю локальные страницы для тестирования django на своем ноутбуке. Я уже проверил все следующие

• python работает нормально и в актуальном состоянии (2.5.1)

• django доступен для Python и обновлен (1,1,0, 'final', 0)

• Модуль mod_wsgi загружен среди модулей apache в моей конфигурации apache - проверьте!

• путь к приложению django находится в vhost.conf с соответствующими разрешениями - ОК!

• mod_wsgi vhost.conf протестирован и отлично работает в предназначенном каталоге приложения django - тестовое приложение через localhost вытягивает 200 OK, «Привет, мир!»

• Приложение django по умолчанию было создано с использованием 'django-admin.py startproject mysite'

• Приложение django прекрасно работает на порту 8000, используя сервер разработки - ОК!

• путь к новому приложению django (называемый mysite) находится на пути к python - проверено!

Все это проверено, и когда я запускаю скрипт wsgi с DJANGO_SETTINGS_MODULE settings.py и загружаю приложение django, я все еще получаю «не могу импортировать настройки» mysite.settings и т. Д.

Поскольку это, по-видимому, охватывает основные проблемы, можно ли предпринять какие-либо дальнейшие шаги, чтобы выяснить проблему?

================

Python путь действителен, проверен. Сервер разработки django работает нормально с командной строкой на порту 8000.

В конфигурации apache загружен типовой модуль: LoadModule wsgi_module libexec / apache2 / mod_wsgi.so

vhost.conf включен из конфигурации apache следующим образом

NameVirtualHost: * .80

    <Directory /users/useracct/scripts/python>
            Order allow,deny
            Allow from all
    </Directory>

    <Directory /Library/WebServer/Documents>
            Order allow,deny
            Allow from all
    </Directory>
    WSGIDaemonProcess localhost user=username group=staff threads=25
    WSGIProcessGroup localhost

    WSGIScriptAlias /mysite /users/useracct/Sites/mysite/mysite.wsgi

    <Directory /users/useracct/Sites/mysite/>
            Allow from all
    </Directory>

    DocumentRoot /Users/useracct/Sites/

Virtualenv не настроен с этой учетной записью, так что это на одну менее вероятную причину.

=======================

и файл сценария wsgi (пытаясь сохранить его минимальным):


import os, sys
path = '/users/usracct/sites/mysite'
if path not in sys.path:
    sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

1 Ответ

2 голосов
/ 27 февраля 2010

Попробуйте добавить / users / useracct / Sites / a в ваш pythonpath в файле wsgi:

import os
import sys
.....
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..')
....
...