ValueError:没有这样的渲染器工厂.mak - Python金字塔错误

时间:2014-04-09 13:53:38

标签: python pyramid pylons mako

我升级到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/

3 个答案:

答案 0 :(得分:1)

必须重新创建我的VirtualEnv并重新开始。能够修复丢失的mak问题

What version of Pyramid do I have and what's the best way to update?

在此处@madjar回答

答案 1 :(得分:0)

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

这个错误的主要原因是,在金字塔1.5a2 +中,Pyramid社区正在一个名为pyramid_mako的包中移动mako tepmlate,并且变色龙模板正被移动到名为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

答案 2 :(得分:0)

我使用启动脚手架设置项目,默认采用变色龙。所以在将它更改为setup.py中的jinja2并且 init.py 时出现了类似的错误,但在我的情况下它是.pt

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

不要忘记使用您正在使用的模板的相应格式。 工作得比