首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache mod_wsgi导入错误-没有找到模块

Apache mod_wsgi导入错误-没有找到模块
EN

Stack Overflow用户
提问于 2011-08-24 01:25:05
回答 1查看 1.1K关注 0票数 0

我一直在尝试用Django编写应用程序,使用Apache2.2编写应用程序,用Django 1.3和Python2.7.2编写mod_wsgi,但是它根本不起作用。我也做了一段时间了--而且它在开发服务器上也很完美。但我无法投入生产环境(apahce)。

我的Apache错误日志显示了以下内容:

代码语言:javascript
复制
[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中存在以下内容

代码语言:javascript
复制
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 

阿帕奇·康菲格斯说:

代码语言:javascript
复制
WSGIScriptAlias / "C:/wsgi_app/django.wsgi"
<Directory "C:/wsgi_app/">
Allow from all
</Directory>

我无法理解为什么apache要在站点包中寻找模块,它存在于C:/工作区/MB/src/MB/IWorks中?请给我建议。

EN

回答 1

Stack Overflow用户

发布于 2011-08-25 07:14:23

因此,我的两个评论都有一个答案,因为OP还没有回答,我假设其中一个会有所帮助。

格雷厄姆·邓普顿在评论中建议,这个应该是修复方法:

将以下内容添加到.wsgi文件中:

代码语言:javascript
复制
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,但并不总是正确的)。

如果这样做没有帮助的话,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7169469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档