【问题标题】:ValueError: No such renderer factory .mak - Python Pyramid errorValueError:没有这样的渲染器工厂 .mak - Python Pyramid 错误
【发布时间】:2014-05-22 18:54:07
【问题描述】:

我升级到 Python 1.4.5,当我尝试运行我的项目时出现以下错误:

ValueError: No such renderer factory .mak
[Applications/MAMP/htdocs/WhoAt/env/www/www/views/index/index.py line:32]
get()
     ->return self.render(mak)

[Applications/MAMP/htdocs/WhoAt/env/www/www/views/__init__.py line:231]
render()
     ->response = render_to_response(template, context, request=self.request)

[Applications/MAMP/htdocs/WhoAt/env/lib/python2.7/site-packages/pyramid/renderers.py line:138]
render_to_response()
     ->return helper.render_to_response(value, None, request=request)

ValueError: No such renderer factory .mak

我昨天查了一下,得知默认情况下不再支持 mako 模板。他们必须重新添加:What's New In Pyramid 1.5

我按照该文档页面上的步骤操作,但仍然收到错误:(

init.py

config.include('pyramid_mako') # < added that
config.add_static_view('static', 'static', cache_max_age=3600)
config.scan()
return config.make_wsgi_app()

并且在 setup.py 中添加了 'pyramid_mako' 和 chameleon

requires = [
    'pyramid',
    'pyramid_mako',
    'pyramid_chameleon',
    'pyramid_debugtoolbar',
    'waitress',
]

还在终端运行 setup.py :(

还有其他人在 PyCharm 中修复 mako 模板时遇到过问题吗?

我的点子冻结的打印列表:http://codepen.io/leongaban/pen/Bvakw/

【问题讨论】:

标签: python pyramid pylons mako


【解决方案1】:

必须重新创建我的 VirtualEnv 并重新开始。能够解决缺少 mak 的问题

What version of Pyramid do I have and what's the best way to update?@madjar回答这里

【讨论】:

    【解决方案2】:

    因为我也遇到了同样的问题 (No such renderer factory .mak),所以我想知道解决方案。 然后我得到了https://pypi.python.org/pypi/pyramid/1.5a2 的链接,它帮助我摆脱了这个问题。 此错误意味着应用程序正在搜索模板,它是 mako 或 chameleon,但由于它无法找到 Renderer,我们的应用程序会抛出此错误。

    此错误的主要原因是,在金字塔 1.5a2+ 中,Pyramid 社区正在将 mako tepmlate 移动到名为 pyramid_mako 的包中,并且正在将变色龙模板移动到名为 pyramid_chameleon 的包中。

    所以为了解决这个问题,我对我的setup.py__init.py__ 进行了一些更改。

    案例 1。 如果您的模板系统是变色龙 在setup.py 中添加以下行

    setup(..........)

    install_requires=[ 'pyramid_chameleon', 'pyramid', ],__init__.py 中添加以下行

    config.include('pyramid_chameleon')

    案例 2 如果您的模板系统是 mako 在setup.py 中添加以下行

    setup(..........)

    install_requires=[ 'pyramid_mako', 'pyramid', ],__init__.py 中添加以下几行

    config.include('pyramid_mako')

    然后尝试运行setup.py,然后运行develpoment.ini

    【讨论】:

      【解决方案3】:

      我使用初始脚手架设置项目,默认情况下采用变色龙。因此,在 setup.py 中将其更改为 jinja2 并且 init.py 有类似的错误,但在我的情况下它是 .pt

      所以发生的事情是它仍在调用views.py 中的默认模板引擎,它之前在views.py 上进行了更改。在相应文件的模板目录中添加相应的模板文件。例如我删除了 .pt 格式文件并添加了 .jinja2 模板文件。

      不要忘记为您正在使用的模板使用相应的格式。 效果比

      【讨论】:

        猜你喜欢
        • 2018-08-18
        • 2015-12-25
        • 1970-01-01
        • 2016-06-10
        • 2010-12-14
        • 1970-01-01
        • 2013-07-21
        • 2019-05-04
        • 2017-07-10
        相关资源
        最近更新 更多