У меня есть проблемы при получении django для работы над апачскими 2.2 с mod_wsgi. Django установлен и mod_wsgi также. Я могу даже видеть 404 страницы при доступе к пути, и я могу войти в django администратора. Но если я хочу установить модуль меток, я получаю следующую ошибку:
Traceback (most recent call last):
File "setup.py", line 49, in
version_tuple = __import__('tagging').VERSION
File "/home/jim/django-tagging/tagging/__init__.py", line 3, in
from tagging.managers import ModelTaggedItemManager, TagDescriptor
File "/home/jim/django-tagging/tagging/managers.py", line 5, in
from django.contrib.contenttypes.models import ContentType
File "/usr/lib/python2.5/site-packages/django/contrib/contenttypes/models.py", line 1, in
from django.db import models
File "/usr/lib/python2.5/site-packages/django/db/__init__.py", line 10, in
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/
Order deny,allow
Allow from all
Alias /admin/media/ "/usr/lib/python2.5/site-packages/django/contrib/admin/media/"
Order allow,deny
Allow from all
WSGIScriptAlias /dj /home/jim/django/mysite/apache/django.wsgi
Order deny,allow
Allow from all
Мой 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()
администратор все еще работает, но я получаю ту же ошибку, когда я пытаюсь установить модуль меток.
Во-первых,
Чтобы убедиться, что это не проблема настройки Apache / mod-wsgi, вы можете запустить сервер разработки с рабочей машины
python manage.py runserver 0:8080
Затем укажите в браузере
http://yoursite.com:8080/
. Вы должны увидеть точно такое же поведение.
Затем,
Для устранения этой проблемы:
В оболочке python на вашем сервере попробуйте import tagging
. Очевидно, что из вашей трассировки тегирование импорта
вызывает ошибку, и поэтому настройки не могут быть импортированы.
Затем просто удалите пакет, содержащий теги, и выполните новую установку с помощью следующей команды, которая хорошо знает, как устанавливать пакеты.
.
sudo pip install django-tagging
Вы читали запись в блоге Грэма Дамплтона о Django и WSGI ? Он довольно хорошо описывает некоторые общие проблемы конфигурации, особенно касается mysite.settings
vs. settings
.
ОБНОВЛЕНИЕ: пожалуйста, прочтите прекрасные комментарии Грэма Дамплтона ниже.
ОБНОВЛЕНИЕ 2: Как указали и Грэм, и стал Гуру, проблема вовсе не в WSGI. Вместо этого проблема связана с вашей установкой django-tagging
. Воспользуйтесь советом статьGuru и используйте pip
для установки django-tagging
.