使用wsgi进行django设置导入失败

时间:2013-04-21 14:06:31

标签: python django mod-wsgi production-environment

我正在通过mod_wsgi在prodiction中设置django项目。 问题是wsgi应用程序失败并出现错误AttributeError: 'Settings' object has no attribute 'ROOT_URLCONF',我无法理解。当我通过./manage.py runserver运行相同的项目时,它工作正常。

项目结构:

/var/www/python/projectname.org/projectname
./core/
./core/wsgi.py
./core/settings/
               ./__init__.py
               ./django.py
               ./extensions.py
               ./secrets.py
               ./server.py
               ./project.py
./app1
./app2
./templates
./static
...

是的,通常的Django设置文件被拆分成几个。这在dev env中运行得非常好,不知道这是否与我在WSGI生产环境中遇到的问题有关。

在python的控制台中我可以轻松导入projectname.core.settings,但它内部也没有ROOT_URLCONF

wsgi.py:

import os
import sys
sys.path.append('/var/www/python/projectname.org')

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "projectname.core.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

apache virtualhost conf:

<VirtualHost *:80>
ServerAdmin alex@projectname.org
ServerName projectname.org

DocumentRoot /var/www/python/projectname.org/projectname/core

WSGIScriptAlias / /var/www/python/projectname.org/projectname/core/wsgi.py

<Directory /var/www/python/projectname.org/projectname>
    <Files wsgi.py>
    Order deny,allow
    Allow from all
    </Files>
</Directory>
...
</VirtualHost>

当我尝试在控制台中导入projectname.core.settings时 - 导入工作正常,但我也无法访问ROOT_URLCONF。显然这是相关的,但为什么它可以通过runserver起作用?我如何通过wsgi或控制台使其工作?

0 个答案:

没有答案