Apache не может получить доступ к приложениям Django

так вот настройка:

Весь сайт работает нормально, если я удалю приложение (чье имя myapp) в разделе INSTALLED_APPS в файле настроек, я добавил WSGIPythonHome в apache2.conf

Я могу успешно получить доступ к приложениям через интерактивную оболочку Python в Django (python manage.py shell). Я могу создавать, обновлять и удалять данные.

Я использую стандартную настройку Apache 2 для Ubuntu 10.04 Lucid Lynx (с поддержкой сайтов, с поддержкой модов, apache2.conf и т. д.)

Я запускаю виртуальную среду, расположенную в /home/ygamretuta/dev/myproject.

Мой проект django находится в /home/ygamretuta/dev/site1.

Файл журнала ошибок говорит об этом (последние 2 строки):

File "/home/ygamretuta/dev/myproject/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module

TemplateSyntaxError: Caught ImportError while rendering: No module named myapp

мой django.wsgi содержит это:

import os, sys
sys.path.append('/home/ygamretuta/dev')
os.environ['DJANGO_SETTINGS_MODULE'] = 'site1.settings'

import django.core.handlers.wsgi

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

мой файл виртуального хоста для site1.com (находящийся в папке с доступными сайтами) содержит это (без других деталей):

WSGIDaemonProcess ygamretuta processes=2 maximum-requests=500 threads=1
WSGIProcessGroup ygamretuta
WSGIScriptAlias / /home/ygamretuta/dev/site1/apache/django.wsgi

Что я мог упустить? Я получаю сообщение об ошибке e 500 Internal Server Error, если пользовательские приложения (те, которые я создал с помощью manage.py startapp) не закомментированы


person yretuta    schedule 12.10.2010    source источник


Ответы (1)


Добавьте /home/ygamretuta/dev/site1 к sys.path.

person Ignacio Vazquez-Abrams    schedule 12.10.2010
comment
это уже было сделано в django.wsgi, как указано выше. Должен ли я поставить его в другом месте? - person yretuta; 12.10.2010
comment
Если я заменю текущий на /site1, это вызовет ошибку Не удалось импортировать настройки 'site1.settings', как отмечено в коде Google для интеграции WSGI Django, параметр папки sys.path.append должен быть родительским для папка проекта django: Другими словами, это должен быть каталог, в котором вы находились, когда запускался django-admin.py. Он также приравнивается к родительскому каталогу каталога, который содержит «settings.py», созданный «django-admin.py startproject». - person yretuta; 12.10.2010
comment
У меня также есть два оператора sys.path.append в моем сценарии WSGI. - person André Caron; 12.10.2010