使用mod_wsgi设置Django1.1.4

时间:2014-10-28 08:13:56

标签: python django mod-wsgi

我在Django 1.1.4中有一个项目,我正在尝试使用mod_wsgi在生产中设置这个项目,但是我遇到了一些错误:

我的wsgi文件代码:

import os
import sys
import site

# Add the site-packages of the chosen virtualenv to work with
site.addsitedir('path_to_\site-packages')

# Add the app's directory to the PYTHONPATH
sys.path.append('path_to_dir')
sys.path.append('path_to_dir')

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

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

我试图调试错误,就像在我的设置中打印一些内容时它没有打印,所以我猜我的设置没有被调用。

我的wsgi和设置文件属于同一级别,我使用了两种方法来提及我的wsgi文件中的设置,如os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings',但都失败了。

错误 - 记录:

File "C:\\Python27\\lib\\site-packages\\django\\core\\handlers\\wsgi.py", line 230, in __call__
     self.load_middleware()
   File "C:\\Python27\\lib\\site-packages\\django\\core\\handlers\\base.py", line 33, in load_middleware
     for middleware_path in settings.MIDDLEWARE_CLASSES:
   File "C:\\Python27\\lib\\site-packages\\django\\utils\\functional.py", line 272, in __getattr__
     self._setup()
   File "C:\\Python27\\lib\\site-packages\\django\\conf\\__init__.py", line 40, in _setup
     self._wrapped = Settings(settings_module)
   File "C:\\Python27\\lib\\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 'cbc_website.settings' (Is it on sys.path? Does it have syntax errors?): No module named cbc_website.settings

2 个答案:

答案 0 :(得分:1)

Python正在解释你的' \'在路径定义中作为转义字符。 https://docs.python.org/2/reference/lexical_analysis.html#string-literals

在指定带反斜杠的文字路径时使用r'path'。所以而不是:

sys.path.append('C:\\\something')

您指定:

sys.path.append(r'C:\\\something')

wsgi.py文件中。

答案 1 :(得分:0)

您是否尝试导入yourprojectname.settings而非settings

这是我所做的,以及评论中提供的链接https://github.com/django/django/blob/1.1.4/docs/howto/deployment/modwsgi.txt中指定的内容。