这是我在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上有类似的问题,我已经阅读了大部分内容,但无济于事
答案 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.