【问题标题】:Disabling debugtoolbar causes Mako errors禁用调试工具栏会导致 Mako 错误
【发布时间】:2014-02-06 11:25:03
【问题描述】:

当我的 settings.ini 文件包含以下内容时,我的 Pyramid 应用程序运行良好:

pyramid.includes =
    pyramid_debugtoolbar
    pyramid_tm

但如果我将内容更改为:

pyramid.includes =
    pyramid_tm

发生这种情况:

Traceback (most recent call last):
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/waitress-0.8.8-py2.7.egg/waitress/channel.py", line 337, in service
    task.service()
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/waitress-0.8.8-py2.7.egg/waitress/task.py", line 173, in service
    self.execute()
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/waitress-0.8.8-py2.7.egg/waitress/task.py", line 392, in execute
    app_iter = self.channel.server.application(env, start_response)
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid-1.5a4-py2.7.egg/pyramid/router.py", line 272, in __call__
    response = self.invoke_subrequest(request, use_tweens=True)
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid-1.5a4-py2.7.egg/pyramid/router.py", line 247, in invoke_subrequest
    response = handle_request(request)
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid_fanstatic-0.5-py2.7.egg/pyramid_fanstatic/__init__.py", line 64, in __call__
    response = self.handler(request)
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid-1.5a4-py2.7.egg/pyramid/tweens.py", line 21, in excview_tween
    response = handler(request)
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid_tm-0.7-py2.7.egg/pyramid_tm/__init__.py", line 82, in tm_tween
    reraise(*exc_info)
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid_tm-0.7-py2.7.egg/pyramid_tm/__init__.py", line 63, in tm_tween
    response = handler(request)
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid-1.5a4-py2.7.egg/pyramid/router.py", line 163, in handle_request
    response = view_callable(context, request)
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid-1.5a4-py2.7.egg/pyramid/config/views.py", line 377, in rendered_view
    context)
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid-1.5a4-py2.7.egg/pyramid/renderers.py", line 416, in render_view
    return self.render_to_response(response, system, request=request)
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid-1.5a4-py2.7.egg/pyramid/renderers.py", line 439, in render_to_response
    result = self.render(value, system_values, request=request)
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid-1.5a4-py2.7.egg/pyramid/renderers.py", line 419, in render
    renderer = self.renderer
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid-1.5a4-py2.7.egg/pyramid/decorator.py", line 37, in __get__
    val = self.wrapped(inst)
  File "/home/pharm/big_data/local/lib/python2.7/site-packages/pyramid-1.5a4-py2.7.egg/pyramid/renderers.py", line 402, in renderer
    'No such renderer factory %s' % str(self.type))
ValueError: No such renderer factory .mak

我很想知道为什么。

转述:

问题是为什么会发生这种情况,而不是如何解决它...项目中使用了 mako,并且一切正常。该错误仅在我禁用调试工具栏时发生。那么调试工具栏以某种方式使 mako 可用于应用程序?如何?

【问题讨论】:

    标签: python pyramid mako pyramid-debug-toolbar


    【解决方案1】:

    问题是

    ValueError: No such renderer factory .mak
    

    Pyramid 默认不再依赖或配置 Mako 和 Chameleon 模板系统渲染器。

    对 Mako 模板的支持已移至名为 pyramid_mako 的附加包中,对 Chameleon 模板的支持已移至名为 pyramid_chameleon 的附加包中。这些包是对这些模板语言的旧内置支持的直接替代品。您所要做的就是安装它们并使它们在您的配置中处于活动状态,以便为 .pt 和/或 .mako(或 .mak)注册渲染器工厂,以使您的应用程序再次运行。

    您可以在此处阅读更多相关信息 —> Major Backwards Incompatibilities

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多