Не могу заставить работать mod_wsgi и Apache с Django - PullRequest
6 голосов
/ 23 августа 2010

Это ошибка, которую я получаю в журнале ошибок Apache:

[Sun Aug 22 16:52:06 2010] [error] [client 127.0.0.1] ImportError: No module named settings

Это мой файл .wsgi, за это сообщение в блоге :

import sys

sys.path.insert(0, '/home/wot/django-projects/aedo')
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()

Я дважды и трижды проверил имя пути, и это действительно путь к файлу моего проекта. Я пытался заставить это работать в течение многих часов, и сделал много поиска в Google. Я спрашиваю здесь, как мое последнее средство. Я в отчаянии!

РЕДАКТИРОВАТЬ: Я знаю, что здесь есть подобные вопросы по SA, и я прочитал большинство из них, но безрезультатно

Ответы [ 4 ]

2 голосов
/ 23 августа 2010

Что выводится при запуске:

ls -las /home/wot/django-projects/aedo/

Доступен ли для чтения каталог и все файлы пользователю, от имени которого работает Apache?Если это не так, вы можете получить эту ошибку.

Также посмотрите доклад и посмотрите на слайды, упомянутые по адресу:

http://blog.dscpl.com.au/2010/06/sydney-pycon-modwsgi-talk-slides.html

, так как он обсуждает вопросы разрешений далее.1011 *

2 голосов
/ 23 августа 2010

попробуйте изменить

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

до

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

На самом деле я тоже получал эту ошибку, и я сделал выше. Я также изменил

ROOT_URLCONF =  'appname.urls' 

до

ROOT_URLCONF =  'urls' 

Я надеюсь, что ваш файл settings.py находится в том же каталоге, что и файл wsgi для этого проекта.

2 голосов
/ 23 августа 2010

Не работает, когда вы вставляете:

import os, sys
sys.path.append('/usr/local/django')    # obs: path to django
sys.path.append('/home/wot/django-projects/aedo')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi

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

в файл django.wsgi?

0 голосов
/ 13 декабря 2013

У меня были странные проблемы с импортом, Python утверждал, что Django не может импортировать Site ... Поскольку моя установка прошла с чисто "python runserver ..." в среду WSGI, разрешения были на самом деле проблемой.

Удивлен тем, что я даже не изменил разрешение для пакета django.contrib.site, просто все файлы проекта на 755.

...