无法使用Django的mod_wsgi和Apache工作

时间:2010-08-23 00:11:09

标签: python django apache wsgi

这是我在Apache错误日志中遇到的错误:

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

这是我的.wsgi文件,按this blog post

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()

我已经对路径名进行了两次和三次检查,这确实是我的项目文件的路径。我一直试图让这个工作几个小时,并做了很多谷歌搜索。我在这里要求作为我的最后手段。我很绝望!

编辑:我知道SA上有类似的问题,我已经阅读了大部分内容,但无济于事

4 个答案:

答案 0 :(得分:2)

放入时不起作用:

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文件中的

答案 1 :(得分:2)

跑步的输出是什么:

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

Apache运行的目录和用户可读的所有文件是?如果他们不是,你可能会得到这个错误。

还要观看谈话并查看提到的幻灯片:

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

因为它进一步讨论了权限问题。

答案 2 :(得分:2)

尝试更改

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

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

实际上我也遇到了这个错误而且我做了以上事情。我也改变了

ROOT_URLCONF =  'appname.urls' 

ROOT_URLCONF =  'urls' 

我希望您的settings.py与此项目的wsgi文件位于同一目录中。

答案 3 :(得分:0)

对我来说,我有奇怪的导入问题,Python声称Django无法导入Site ...因为我的安装从纯粹的“python runserver ...”转到WSGI环境,所以权限实际上是一个问题。

感到很惊讶,因为我甚至没有更改django.contrib.site包的权限,只将项目的所有文件更改为755.