【问题标题】:Server error when pyramid app hosted with production.ini使用 production.ini 托管的金字塔应用程序时出现服务器错误
【发布时间】:2014-07-15 09:35:12
【问题描述】:

我有一个金字塔项目,在使用 development.ini 托管时可以正常工作,但是一旦我使用 production.ini,我就会在浏览器中收到此错误:

Internal Server Error
The server encountered an unexpected internal server error
(generated by waitress)

这个登录终端:

Starting subprocess with file monitor
Starting server in PID 5912.
serving on http://0.0.0.0:6543
2014-05-26 16:54:23,139 ERROR [waitress][Dummy-2] Exception when serving /
Traceback (most recent call last):
  File "/home/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/waitress-0.8.9-py2.7.egg/waitress/channel.py", line 337, in service
    task.service()
  File "/home/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/waitress-0.8.9-py2.7.egg/waitress/task.py", line 173, in service
    self.execute()
  File "/home/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/waitress-0.8.9-py2.7.egg/waitress/task.py", line 392, in execute
    app_iter = self.channel.server.application(env, start_response)
  File "/home/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/pyramid/router.py", line 242, in __call__
    response = self.invoke_subrequest(request, use_tweens=True)
  File "/home/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/pyramid/router.py", line 217, in invoke_subrequest
    response = handle_request(request)
  File "/home/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/pyramid/tweens.py", line 21, in excview_tween
    response = handler(request)
  File "/home/roman/Critical_ID/CCG_Map/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/roman/Critical_ID/CCG_Map/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/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/pyramid/router.py", line 163, in handle_request
    response = view_callable(context, request)
  File "/home/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/pyramid/config/views.py", line 377, in rendered_view
    context)
  File "/home/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/pyramid/renderers.py", line 418, in render_view
    return self.render_to_response(response, system, request=request)
  File "/home/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/pyramid/renderers.py", line 441, in render_to_response
    result = self.render(value, system_values, request=request)
  File "/home/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/pyramid/renderers.py", line 421, in render
    renderer = self.renderer
  File "/home/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/pyramid/decorator.py", line 37, in __get__
    val = self.wrapped(inst)
  File "/home/roman/Critical_ID/CCG_Map/local/lib/python2.7/site-packages/pyramid/renderers.py", line 404, in renderer
    'No such renderer factory %s' % str(self.type))
ValueError: No such renderer factory .mak

我在 .ini 文件的 [app:main] 部分下复制了我的 sqlalchemy.urlmako.directories,但我看不出是什么导致了这个错误。

我使用以下命令启动服务器:../bin/pserve/production.ini --reload

我错过了什么?

【问题讨论】:

    标签: python pyramid production waitress


    【解决方案1】:

    这是因为最新版本的 Pyramid 默认不需要/安装 Mako 的模板引擎。要修复此错误,如 HERE 所述,您必须做两件事:

    1. 确保已安装 pyramid_mako 软件包。一种方法是将“pyramid_mako”添加到包的setup.py 文件的install_requires 部分,然后重新运行setup.py develop

      setup(
          #...
          install_requires=[
              'pyramid_mako',         # new dependency
              'pyramid',
              #...
          ],
      )
      
    2. 在您的应用程序中实例化 Pyramid 配置器的部分(通常是项目的 __init__.py 文件中的 main() 函数),告诉 Pyramid 包含 pyramid_mako 包含我:

      config = Configurator(.....)
      config.include('pyramid_mako')
      

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 2019-01-31
      • 2012-04-14
      • 1970-01-01
      • 2019-09-17
      • 2018-04-09
      相关资源
      最近更新 更多