Python 正在尝试在CherryPy服务器上部署Flask应用程序
我试图在CherryPy服务器上部署我的Flask应用程序。我喜欢它的简单和简约的本质 所以我像下面那样点了樱桃Python 正在尝试在CherryPy服务器上部署Flask应用程序,python,flask,cherrypy,cheroot,Python,Flask,Cherrypy,Cheroot,我试图在CherryPy服务器上部署我的Flask应用程序。我喜欢它的简单和简约的本质 所以我像下面那样点了樱桃 pip install CherryPy-15.0.0-py2.py3-none-any.whl 并且写了下面这样的脚本——很多人都建议这样做 from cherrypy import wsgiserver from hello import app d = wsgiserver.WSGIPathInfoDispatcher({'/': app}) server = wsgise
pip install CherryPy-15.0.0-py2.py3-none-any.whl
并且写了下面这样的脚本——很多人都建议这样做
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服务器上的Flask周围找到的所有信息都是使用CherryPy import wsgiserver的,而不是Cheroot.WSGI import server的,甚至是最新的帖子
这让我不确定我是否做了正确的事情
有人能解释一下这种混淆吗?()是一种低级HTTP和WSGI服务器,它曾经是()的一部分,但不久前已被分解成单独的回购协议。所以前一个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()
Cheroot是HTTP+WSGI服务器,它曾经是CherryPy的一部分,但现在被转移到一个单独的项目中。现在它是CherryPy的一个依赖项,它允许其他只想使用WSGI的人只使用CherRoot,而不必安装整个CherryPy框架。您可以安全地用更新的框架替换该导入。感谢您提供的信息。我可以假设所有功能a都以相同的方式使用不同的包装吗?另外,你能把你的评论移到回答吗?是的,可能会有一些重命名,但一般来说,您只需使用不同的导入即可。