【发布时间】:2011-07-07 10:01:47
【问题描述】:
我们使用 Apache+mod_wsgi 来托管我们的 Django 应用程序。
阿帕奇:
WSGIScriptAlias / /home/rls/django_wsgi.py
django_wsgi.py:
import os, sys
sys.path.append('data/misc/django')
os.environ['DJANGO_SETTINGS_MODULE'] = 'rls.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
一切正常,但偶尔我们会在日志中收到 500 Internal Server Error:
mod_wsgi (pid=4825): Exception occurred processing WSGI script '/home/rls/django_wsgi.py'.
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/django/core/handlers/wsgi.py", line 230, in __call__
self.load_middleware()
File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py", line 33, in load_middleware
for middleware_path in settings.MIDDLEWARE_CLASSES:
File "/usr/lib/python2.5/site-packages/django/utils/functional.py", line 276, in __getattr__
self._setup()
File "/usr/lib/python2.5/site-packages/django/conf/__init__.py", line 40, in _setup
self._wrapped = Settings(settings_module)
File "/usr/lib/python2.5/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 'rls.settings' (Is it on sys.path? Does it have syntax errors?): No module named rls.settings
当然,settings.py 中没有语法错误,因为它每隔一段时间就可以正常加载。我错过了什么?非常感谢您的帮助。
【问题讨论】:
-
通常不应该随机看到这一点,除非您在 Python 代码中上次更改配置后没有重新启动 Apache 或 mod_wsgi 守护进程。发布 Apache 配置文件的相关部分以设置 mod_wsgi,包括您如何使用 VirtualHosts,表明您是否有多个 VirtualHost 定义。
标签: python mod-wsgi django-wsgi