cms错误配置:导入中间件cms.middleware.media时出错

我正在将使用django_cms的应用程序从一台服务器转移到另一台服务器,并且花了最近4个小时试图找出此错误的原因。 建议非常欢迎!

 mod_wsgi (pid=21972): Exception occurred within WSGI script '/var/www/vhosts/compdoctest.com/django/compdoc/django.wsgi'.
 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 42, in load_middleware
     raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % (mw_module, e))
 ImproperlyConfigured: Error importing middleware cms.middleware.media: "No module named media"

违规行是settings.py中的中间件列表中的最后一行

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'cms.middleware.page.CurrentPageMiddleware',
    'cms.middleware.user.CurrentUserMiddleware',
    'cms.middleware.multilingual.MultilingualURLMiddleware',
    'cms.middleware.media.PlaceholderMediaMiddleware',
    )

如果我删除最后一行,那么代码会继续,并在稍后说中间件需要该项目。

我使用的是稍微不同的django版本,在旧的工作服务器上使用1.2.1最终版本,在新服务器上使用1.2.3最终版本。

所有我尝试过的东西:

  • 旧版服务器上使用的相同版本的django_cms - 2.1.0 beta 3
  • github上的最新版本 - 2.1.0.beta2-550将cms,mptt,菜单,发布者文件夹放入
  • 应用程序从python导入
  • Google搜索(没有人遇到同样的问题,我可以找到)
  • 中间件文件直接(没问题)
  • 在Python中打开的结果:

    python manage.py shell        
    Python 2.5.2 (r252:60911, Jan 20 2010, 23:14:04) 
    [GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu3)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    (InteractiveConsole)
    >>> import cms.middleware.media
    >>> cms.middleware.media.__file__
    '/var/www/vhosts/compdoctest.com/django/compdoc/cms/middleware/media.pyc'
    >>> from django.forms.widgets import Media
    >>> import cms.middleware.media
    >>> 
    

    感谢我的朋友Bartosz Ptaszynski指引我在这一个正确的方向。 这是一个路径问题。 将此添加到settings.py文件的顶部,它全部开始工作。

    sys.path.insert(0,'/ path_to_app / app /')

    正如他指出的那样:

    WSGI脚本中发生异常意味着在Web服务器下运行的路径是错误的,它与manage.py shell完全不同


    我有同样的问题。 但是由于它只发生在使用mod_wsgi时,另一种解决方案是在apache配置中添加路径(而不是在settings.py中编辑syspath):

        # mod_wsgi settings
    WSGIDaemonProcess name user=user group=group python-path=/app_path/app/:/app_path/lib/python2.6/site-packages/:/app_path/
    WSGIProcessGroup polykum
    

    在Jon Black的例子中也列出了路径中的站点包。

    链接地址: http://www.djcxy.com/p/48589.html

    上一篇: cms ImproperlyConfigured: Error importing middleware cms.middleware.media

    下一篇: C# Obscure error: file '' could not be refactored