我试图在CherryPy服务器上部署我的Flask应用程序。我喜欢它的简单化和简约性。
所以我把CherryPy写成如下所示
pip install CherryPy-15.0.0-py2.py3-none-any.whl并编写了如下所示的脚本,如许多源所建议的-very通用
from cherrypy import wsgiserver
from hello import app
d = wsgiserver.WSGIPathInfoDispatcher({'/': app})
server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 80), d)
if __name__ == '__main__':
try:
server.start()
except KeyboardInterrupt:
server.stop()令我惊讶的是,我有进口错误。在谷歌上搜索了几下之后,我了解到我必须将我的导入行更改为cheroot,才能使其工作。
from cheroot.wsgi import Server
from cheroot.wsgi import PathInfoDispatcher现在,我的代码运行良好。但是,我有点困惑,这是使用CherryPy WSGI服务器的正确方式,还是CherryPy的错误版本。我很困惑,因为Cheroot似乎已经超过了一年(可以追溯到2014年),但是我在CherryPy WSGI服务器上发现的所有信息都是使用from cherrypy import wsgiserver,而不是from cheroot.wsgi import Server,甚至是最新的帖子。
这使我不确定我是否做了正确的事情。
有人能解释一下这种混乱吗?
发布于 2018-06-20 13:56:28
切鲁特 (src)是一个低级别的HTTP服务器,曾经是CherryPy (src)的一部分,但在一段时间前,它已经被单独地加入了回购。因此,以前的cherrypy.wsgiserver已经转移到了cheroot.wsgi模块。
它是完全可替换的,并且设计允许开发人员直接依赖Cheroot,如果他们只使用WSGI服务器,而不需要CherryPy的其他部分。
因此,下面是如何以不可知版本的方式使用它:
try:
from cheroot.wsgi import Server as WSGIServer, PathInfoDispatcher
except ImportError:
from cherrypy.wsgiserver import CherryPyWSGIServer as WSGIServer, WSGIPathInfoDispatcher as PathInfoDispatcher
from hello import app
d = PathInfoDispatcher({'/': app})
server = WSGIServer(('0.0.0.0', 80), d)
if __name__ == '__main__':
try:
server.start()
except KeyboardInterrupt:
server.stop()https://stackoverflow.com/questions/50918276
复制相似问题