django_cms 配置不当 : Error importing middleware cms. middleware.media

标签 django django-cms

我正在将使用 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 final 和新服务器上的 1.2.3 final。

我尝试过的所有事情:
  • 与旧服务器上使用的相同版本的 django_cms - 2.1.0 beta 3
  • github 上最新版本 - 2.1.0.beta2-550 将 cms、mptt、menus、publisher 文件夹放入
  • app 从 python 导入
  • 谷歌搜索(没有人遇到我能找到的相同问题)
  • 直接中间件文件(没问题)

  • 在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
    >>> 
    

    最佳答案

    感谢我的 friend Bartosz Ptaszynski 为我指明了正确的方向。这是一个路径问题。将此添加到 settings.py 文件的顶部,它就神奇地开始工作了。

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

    正如他指出的那样:

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

    关于django_cms 配置不当 : Error importing middleware cms. middleware.media,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4082651/

    相关文章:

    python - Django-CMS 自定义插件未在已发布页面中显示数据

    Django cms 文本编辑器 (CKEditor) 插件

    python - 如何测试打包为可重用应用程序的 Django-CMS 插件

    python - 默认格式日期时间 Django 1.6

    与.annotate()结合使用时,Django queryset union似乎无法正常工作

    WSGI 下需要的项目 * 和 * 应用程序的 Django sys.path.append

    django - 检查Django CMS中是否存在页面

    python - django CMS 历史选项卡在哪里?

    django - 验证/清理Django中非模型表单上的FileField?

    javascript - 从 Django 模型创建 javascript 对象(类)