【问题标题】:Unable to solve sys path error; module said to be missing无法解决系统路径错误;据说丢失的模块
【发布时间】:2011-02-05 22:48:26
【问题描述】:

我一直抛出异常,说没有安装模块。任何帮助将不胜感激。

我环顾四周,有人建议可以通过扩展 sys 路径以包含应用程序目录来解决此错误。我很确定 WSGI 文件中的 sys.path 指令会处理一些事情:

import os, sys
sys.path.append('/home/osqa')
sys.path.append('/home/osqa/trunk')
os.environ['DJANGO_SETTINGS_MODULE'] = 'trunk.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

错误输出如下所示:

[info] mod_wsgi (pid=15737): Attach interpreter ''.
[info] mod_wsgi (pid=15737): Create interpreter 'trunk|'.
[info] [client 172.31.0.6] mod_wsgi (pid=15737, process='OSQA', application='trunk|'): 
Loading WSGI script '/home/osqa/trunk/apache/django.wsgi'.
[error] [client 172.31.0.6] mod_wsgi (pid=15737): Exception occurred processing WSGI 
script '/home/osqa/trunk/apache/django.wsgi'.
[error] [client 172.31.0.6] Traceback (most recent call last):
[error] [client 172.31.0.6]   File "/usr/lib/python2.6/site-
packages/django/core/handlers/wsgi.py", line 230, in __call__
[error] [client 172.31.0.6]     self.load_middleware()
[error] [client 172.31.0.6]   File "/usr/lib/python2.6/site-
packages/django/core/handlers/base.py", line 42, in load_middleware
[error] [client 172.31.0.6]     raise exceptions.ImproperlyConfigured('Error importing  
middleware %s: "%s"' % (mw_module, e))
[error] [client 172.31.0.6] ImproperlyConfigured: Error importing middleware  
forum.middleware.extended_user: "No module named markdown"

Apache Config 如下所示:

WSGISocketPrefix run/wsgi
<VirtualHost *:80>
ServerAdmin xxx@xxx.com   
DocumentRoot /home/osqa/trunk
ServerName trunk   
CustomLog logs/osqa.access.log common   
ErrorLog logs/osqa.error.log
WSGIScriptAlias / /home/osqa/trunk/apache/django.wsgi
<Directory> /home/osqa/trunk/apache>
            Order deny,allow
            Allow from all
</Directory>

WSGIDaemonProcess OSQA
WSGIProcessGroup OSQA
Alias /m/ /home/osqa/trunk/forum/skins/     
<Directory /home/osqa/trunk/forum/skins>
            Order deny,allow
            Allow from all
</Directory>
Alias /upfiles/ /home/osqa/trunk/forum/upfiles/
    <Directory /home/osqa/trunk/forum/upfiles>
            Order deny,allow
            Allow from all
    </Directory></VirtualHost>

forum.middleware.extended_user 看起来像这样: 从 django.contrib.auth.middleware 导入 AuthenticationMiddleware 从 django.contrib.auth 导入注销从 forum.models.user 导入 AnonymousUser 从 forum.views.auth 导入 forward_suspended_userimport 日志

class ExtendedUser(AuthenticationMiddleware):
def process_request(self, request):
    super(ExtendedUser, self).process_request(request)
    if request.user.is_authenticated():           
     try:
            request.user = request.user.user
            if request.user.is_suspended():       
                user = request.user
                logout(request)
                return forward_suspended_user(request, user)
                return None            
                except Exception, e:               
                    import traceback
                    logging.error("Unable to convert auth_user %s to forum_user: \n%s" % (                           request.user.id, traceback.format_exc()
                    ))
    request.user = AnonymousUser()
    return None

【问题讨论】:

    标签: python django apache wsgi middleware


    【解决方案1】:

    您能否发布这个引发异常的中间件,以便我们可以准确地看到它试图导入的内容?

    听起来像是在导入 Markdown,而 Markdown 不在你的路径上。通常,它会安装在您的 site-packages 目录中,而不是安装在您的项目中。

    试试pip install markdown

    更新:你说它肯定已经安装了。 markdown 安装在哪里?

    【讨论】:

    • 我已经使用 easy_install Markdown 在我的站点包目录中安装了 Markdown。现在粘贴中间件代码。
    • Markdown的dir路径:usr/lib/python2.6/site-packages/Markdown-2.0.3-py2.6.egg
    • 你能从shell中导入markdown吗?因为在我的 venv 设置中,我在导入 PIL 鸡蛋时遇到了问题,我只是求助于符号链接
    • 我将 usr/lib/python2.6/site-packages/ 添加到 httpd.conf 中 WSGIDaemonProcess 指令的 python-path 中,从而解决了这个问题。但是现在,我得到了同样的错误,但不是“没有名为 markdown 的模块”,而是像以前一样安装了“没有名为 html5lib 的模块”。想法?
    • 感谢您的帮助。我解决了这个问题。我还必须将 python-eggs 目录添加到 httpd.conf 中的 WSGIDaemonProcess 指令。
    猜你喜欢
    • 2016-03-27
    • 2019-06-30
    • 2016-08-04
    • 2016-09-12
    • 2015-09-03
    • 2013-07-16
    • 2018-10-28
    • 2022-07-22
    • 2019-09-24
    相关资源
    最近更新 更多