0
我一直在尝试使用Django与Apache 2.2和mod_wsgi与Django 1.3和Python 2.7.2一起使用编写的应用程序 - 但它根本不起作用。我也一直在努力 - 它正在开发完美的dev-server。但我无法投入生产env(apahce)。Apache mod_wsgi导入错误 - 没有找到模块
我的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 IWorks
以下是目前在django.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
而且阿帕奇CONFIGS说:
WSGIScriptAlias/"C:/wsgi_app/django.wsgi"
<Directory "C:/wsgi_app/">
Allow from all
</Directory>
我不能了解为什么apache在站点包中寻找模块。它存在于C:/ workspace/MB/src/MB/IWo中RKS?请指教。
我不知道什么是正常的,但添加到.wsgi'path3 ='C:/ workspace/MB/src/MB /'如果path3不在......等等,看看会发生什么? –
忽略我最后的评论。首先在.wsgi文件中将路径改为“C:\\ wsgi_app \\ django.wsgi”和“C:\\ workspace \\ MB \\ src \\”。 –
POSIX样式路径仍然应该工作。你的第一个建议实际上应该是正确的,因为它们没有sys.path中模块的父目录。 –