Python 在tornado下运行金字塔WSGI应用程序

Python 在tornado下运行金字塔WSGI应用程序,python,tornado,pyramid,wsgi,waitress,Python,Tornado,Pyramid,Wsgi,Waitress,Pyramid使用自己的服务生web服务器进行开发,但我想在Tornado下为我的WSGI应用程序提供服务。我想我应该使用pserve.ini文件来配置它,但是我不能让它再次工作,我不建议在Tornado下运行WSGI,因为它没有Tornado的任何优点 如果出于某种原因,您仍然想这样做,那么第二个文档示例似乎就是您正在寻找的: 可以轻松地从INI文件加载金字塔应用程序。从那里,您只需将wsgi应用程序传递到Tornado的wsgi容器中 from pyramid.paster import g

Pyramid使用自己的服务生web服务器进行开发,但我想在Tornado下为我的WSGI应用程序提供服务。我想我应该使用pserve.ini文件来配置它,但是我不能让它再次工作,我不建议在Tornado下运行WSGI,因为它没有Tornado的任何优点

如果出于某种原因,您仍然想这样做,那么第二个文档示例似乎就是您正在寻找的:


可以轻松地从INI文件加载金字塔应用程序。从那里,您只需将wsgi应用程序传递到Tornado的wsgi容器中

from pyramid.paster import get_app

app = get_app('development.ini')
container = tornado.wsgi.WSGIContainer(app)

这并不是你想要的,所以只是评论,而不是回答。虽然Tornado可以服务于WSGI,但并不推荐使用它,因为WSGI不允许异步处理,这是运行Tornado的真正原因。IMHO flup是部署WSGI应用程序的一种更加精简和简单的方法,它是WSGI应用程序和AJP/FCGI/SCGI/CGI之间的网关。你应该在生产中使用fork版本,因为它是围绕着市场的。好的,那么我应该使用哪台服务器呢?最好是一个非常快的取决于你的需要。如果速度就是一切,那么您可能应该使用Tornado,但不是作为WSGI应用程序部署,而是作为本机异步Tornado应用程序部署。(特别是当需要长时间轮询时)如果您必须使用现有的WSGI接口应用程序,可能会有所帮助。根据您的应用程序,一个好的策略是使用稍慢但简单且精简的服务器,并结合经过良好调优的Varnish/nginx缓存前端。例如,如果大部分应用程序都生成了几个访问量较高的常用索引视图,那么经过良好调优的nginx可以确保每几秒钟就有一个请求命中Python代码,我个人觉得tornado是一个更令人愉快的网络服务器,可以在金字塔上使用,所以OP的问题对我来说是有意义的;我宁愿在tornado+Waiteress上开发,然后在时间和机会允许的情况下慢慢迁移到适当的异步模型。感谢您发布此解决方案,即使它没有明显的用例。有没有办法通过
pserve
而不是运行程序脚本来启动应用程序?pserve服务器运行程序完全可以通过PasteDeploy进行插入,所以您可以自由编写自己的解决方案(如果您找到了setuptools入口点,这非常简单)。我不熟悉龙卷风的预赛选手。
from pyramid.paster import get_app

app = get_app('development.ini')
container = tornado.wsgi.WSGIContainer(app)