Проблемы с настройкой django и mod_wsgi - PullRequest
5 голосов
/ 06 апреля 2010

У меня проблемы с настройкой django для работы на apache 2.2 с mod_wsgi. Django установлен и mod_wsgi тоже. Я даже могу видеть страницу 404 при доступе к пути, и я могу войти в систему администратора django. Но если я хочу установить модуль тегирования, я получаю следующую ошибку:

 Traceback (most recent call last):
   File "setup.py", line 49, in <module>
  version_tuple = __import__('tagging').VERSION
   File "/home/jim/django-tagging/tagging/__init__.py", line 3, in <module>
  from tagging.managers import ModelTaggedItemManager, TagDescriptor
   File "/home/jim/django-tagging/tagging/managers.py", line 5, in <module>
  from django.contrib.contenttypes.models import ContentType
   File "/usr/lib/python2.5/site-packages/django/contrib/contenttypes/models.py", line 1, in <module>
  from django.db import models
   File "/usr/lib/python2.5/site-packages/django/db/__init__.py", line 10, in <module>
  if not settings.DATABASE_ENGINE:
   File "/usr/lib/python2.5/site-packages/django/utils/functional.py", line 269, in __getattr__
  self._setup()
   File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 40, in _setup
  self._wrapped = Settings(settings_module)
   File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 75, in __init__
  raise ImportError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
 ImportError: Could not import settings 'mysite.settings' (Is it on sys.path? Does it have syntax errors?): No module named mysite.settings

Мой httpd.conf:

 Alias /media/ /home/jim/django/mysite/media/

 <Directory /home/jim/django/mysite/media>
  Order deny,allow
  Allow from all
 </Directory>

 Alias /admin/media/ "/usr/lib/python2.5/site-packages/django/contrib/admin/media/"

 <Directory "/usr/lib/python2.5/site-packages/django/contrib/admin/media/">
  Order allow,deny
  Allow from all
 </Directory>

 WSGIScriptAlias /dj /home/jim/django/mysite/apache/django.wsgi

 <Directory /home/jim/django/mysite/apache>
  Order deny,allow
  Allow from all
 </Directory>

Мой django.wsgi:

import sys, os

sys.path.append('/home/jim/django')
sys.path.append('/home/jim/django/mysite')

os.chdir('/home/jim/django/mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

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

Я пытаюсь заставить это работать несколько дней назад и прочитал несколько блогов и ответов здесь, но ничего не помогло.

Изменить:

Теперь я попробовал это с этим сообщением в блоге , и мой файл wsgi теперь выглядит так:

import sys
sys.path.insert(0, '/home/jim/django/mysite')
sys.path.insert(0, '/home/jim/django')

import settings

import django.core.management
django.core.management.setup_environ(settings)
utility = django.core.management.ManagementUtility()
command = utility.fetch_command('runserver')

command.validate()

import django.conf
import django.utils

django.utils.translation.activate(django.conf.settings.LANGUAGE_CODE)

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

Администратор все еще работает, но я получаю ту же ошибку при попытке установить модуль тегов.

Ответы [ 2 ]

4 голосов
/ 07 апреля 2010

Во-первых,

  • Поскольку ваш админ работает, настройка с помощью wsgi хорошая. Не беспокойтесь об изменении / редактировании.

Чтобы убедиться, что это не проблема настройки Apache / mod-wsgi, вы можете запустить сервер разработки с рабочей машины

python manage.py runserver 0:8080

Затем укажите ваш браузер на

http://yoursite.com:8080/

Вы должны видеть точно такое же поведение.

Тогда

Для устранения этой проблемы:

  • В оболочке python на вашем сервере попробуйте import tagging. Из вашей трассировки ясно, что import tagging - это то место, где возникает ошибка, и поэтому настройки не могут быть импортированы.

  • Затем просто удалите пакет, содержащий теги, и выполните новую установку с помощью следующей команды, которая хорошо знает, как устанавливать пакеты.

.

sudo pip install django-tagging
4 голосов
/ 06 апреля 2010

Читали ли вы блог Грэма Дамплтона о Django и WSGI ?Он довольно неплохо описывает некоторые распространенные проблемы конфигурации и особенно касается mysite.settings против settings.

ОБНОВЛЕНИЕ: Пожалуйста, прочтите превосходные комментарии Грэма Дамплтона ниже.Как указали Грэм и Гуру, проблема вовсе не в WSGI.Это проблема с вашей установкой django-tagging.Воспользуйтесь советом Гуру и используйте pip для установки django-tagging.

...