我一直在尝试用Django编写应用程序,使用Apache2.2编写应用程序,用Django 1.3和Python2.7.2编写mod_wsgi,但是它根本不起作用。我也做了一段时间了--而且它在开发服务器上也很完美。但我无法投入生产环境(apahce)。
我的Apache错误日志显示了以下内容:
[error] ['C:\\\\Python27\\\\lib\\\\site-packages\\\\django_tinymce-1.5.1a2-py2.7.egg', 'C:\\\\windows\\\\system32\\\\python27.zip', 'C:\\\\Python27\\\\Lib', 'C:\\\\Python27\\\\DLLs', 'C:\\\\Python27\\\\Lib\\\\lib-tk', 'C:\\\\Apache Software Foundation\\\\Apache2.2', 'C:\\\\Apache Software Foundation\\\\Apache2.2\\\\bin', 'C:\\\\Python27', 'C:\\\\Python27\\\\lib\\\\site-packages', 'C:\\\\Python27\\\\lib\\\\site-packages\\\\PIL', 'C:/wsgi_app/django.wsgi', 'path4', 'C:/workspace/MB/src/', 'C:/Django-1.3']
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] mod_wsgi (pid=7608): Exception occurred processing WSGI script 'C:/wsgi_app/django.wsgi'............
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] return self.format('D, j M Y H:i:s O')
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\utils\\dateformat.py", line 30, in format
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] pieces.append(force_unicode(getattr(self, piece)()))
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\utils\\encoding.py", line 71, in force_unicode
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] s = unicode(s)
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\utils\\functional.py", line 206, in __unicode_cast
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] return self.__func(*self.__args, **self.__kw)
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\utils\\translation\\__init__.py", line 81, in ugettext
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] return _trans.ugettext(message)
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\utils\\translation\\trans_real.py", line 286, in ugettext
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] return do_translate(message, 'ugettext')
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\utils\\translation\\trans_real.py", line 276, in do_translate
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] _default = translation(settings.LANGUAGE_CODE)
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\utils\\translation\\trans_real.py", line 185, in translation
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] default_translation = _fetch(settings.LANGUAGE_CODE)
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\utils\\translation\\trans_real.py", line 162, in _fetch
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] app = import_module(appname)
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] File "C:\\Python27\\lib\\site-packages\\django\\utils\\importlib.py", line 35, in import_module
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] __import__(name)
[Wed Aug 24 10:24:07 2011] [error] [client 127.0.0.1] TemplateSyntaxError: Caught ImportError while rendering: No module named IWorksdjango.wsgi中存在以下内容
import os
import sys
path = 'C:/wsgi_app/django.wsgi'
if path not in sys.path:
sys.path.append(path)
path2 = 'C:/workspace/MB/src/'
if path2 not in sys.path:
sys.path.append(path2)
os.environ['DJANGO_SETTINGS_MODULE'] = 'MB.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
print >> sys.stderr, sys.path 阿帕奇·康菲格斯说:
WSGIScriptAlias / "C:/wsgi_app/django.wsgi"
<Directory "C:/wsgi_app/">
Allow from all
</Directory>我无法理解为什么apache要在站点包中寻找模块,它存在于C:/工作区/MB/src/MB/IWorks中?请给我建议。
发布于 2011-08-25 07:14:23
因此,我的两个评论都有一个答案,因为OP还没有回答,我假设其中一个会有所帮助。
格雷厄姆·邓普顿在评论中建议,这个应该是修复方法:
将以下内容添加到.wsgi文件中:
path3 = 'C:/workspace/MB/src/MB/'
if path3 not in sys.path:
sys.path.append(path3)我不在windows上开发python,但我认为路径应该编写为'C:\\workspace\\MB\\src\\',不像'C:/workspace/MB/src/' (来自django https://code.djangoproject.com/wiki/django_apache_and_mod_wsgi#dj_survey.wsgi,但并不总是正确的)。
如果这样做没有帮助的话,请告诉我。
https://stackoverflow.com/questions/7169469
复制相似问题