Python 正确启动cherrypy

Python 正确启动cherrypy,python,http,cherrypy,Python,Http,Cherrypy,我如何正确地开始cherrypy?它在3.0中对我起作用,但现在我可以提供内容,但每次我接触源代码时都必须启动服务,即使自动阅读器正在运行 我已经添加了cherrypy.engine.block()语句,该语句起作用,但cherrypy随后停止为我的应用程序提供服务(浏览器中没有应答,即使它正确打开了TCP端口) 那么,关于在哪里或寻找什么,有什么线索或见解吗 这是标准输出: [30/Dec/2012:17:05:28] ENGINE Bus STARTING<br> [30/Dec

我如何正确地开始cherrypy?它在3.0中对我起作用,但现在我可以提供内容,但每次我接触源代码时都必须启动服务,即使自动阅读器正在运行

我已经添加了
cherrypy.engine.block()
语句,该语句起作用,但cherrypy随后停止为我的应用程序提供服务(浏览器中没有应答,即使它正确打开了TCP端口)

那么,关于在哪里或寻找什么,有什么线索或见解吗

这是标准输出:

[30/Dec/2012:17:05:28] ENGINE Bus STARTING<br>
[30/Dec/2012:17:05:28] ENGINE Started monitor thread 'Autoreloader'.<br>
[30/Dec/2012:17:05:28] ENGINE Started monitor thread '_TimeoutMonitor'.<br>
[30/Dec/2012:17:05:28] ENGINE Serving on 0.0.0.0:8080<br>
[30/Dec/2012:17:05:28] ENGINE Bus STARTED<br>
[30/Dec/2012:17:05:28] ENGINE Bus STARTING<br>
[30/Dec/2012:17:05:28] ENGINE Monitor thread 'Autoreloader' already started.<br>
[30/Dec/2012:17:05:28] ENGINE Monitor thread '_TimeoutMonitor' already started.<br>
[30/Dec/2012:17:05:28] ENGINE Already serving on 0.0.0.0:8080<br>
[30/Dec/2012:17:05:28] ENGINE Bus STARTED<br>
[30/Dec/2012:17:05:28]发动机总线启动
[30/Dec/2012:17:05:28]引擎已启动监视器线程“自动转载器”。
[30/Dec/2012:17:05:28]引擎已启动监视器线程“\u TimeoutMonitor”。
[30/Dec/2012:17:05:28]发动机在0.0.0.0:8080上运行
[30/Dec/2012:17:05:28]发动机总线已启动
[30/Dec/2012:17:05:28]发动机总线启动
[30/Dec/2012:17:05:28]发动机监视器线程“Autoreloader”已启动。
[30/Dec/2012:17:05:28]发动机监视器线程“\u TimeoutMonitor”已启动。
[30/Dec/2012:17:05:28]发动机已在0.0.0.0:8080上运行
[30/Dec/2012:17:05:28]发动机总线已启动
我是如何开始的:
cherrypy.tree.mount(login(),'/',configPath)
cherrypy.tree.mount(reservation(),'/reservation',configPath)
mount(administration(),'/reservation/administration',configPath)
cherrypy.server.socket\u host=“0.0.0.0”
cherrypy.engine.start()
正如Makoto所说,看起来你已经开始了两次CherryPy。您是否同时调用engine.start/engine.block和cherrypy.quickstart?如果是这样,请删除其中一个。

我的问题是cherrypy与python 3.3结合使用的旧版本(实际上是他们网站上链接的最新版本!)。从bitbucket获取最新的软件包为我解决了这个问题

看起来已经开始了。你在启动时看到了什么具体的错误?我没有看到任何错误-就像我写的一样,让它部分工作的唯一方法是使用only start而不使用block语句。有了它,cherrypy就什么都不提供了,浏览器将永远等待响应。看到启动两次是不正常的。调用start-then-block是正确的方法,至少对于CherryPy 3.1+我知道这一点。但正如我所说的,这是让它工作的唯一方法,它确实满足了预期的应用。然而,在添加块的情况下,它根本不起作用。正如你指出的那样,这不是开始的正确方式,这就是我寻求帮助的原因!不,实际上这是正确的方法。CherryPy提供了两种简单的机制:启动+阻塞或快速启动(内部称为formers)。当CherryPy本身是主循环时使用block,否则start就足够了。请检查我对makotos答案的评论。谢谢我只使用粘贴的代码-没有双重启动。
cherrypy.tree.mount(login(), '/', configPath)<br>
cherrypy.tree.mount(reservation(), '/reservation', configPath)<br>
cherrypy.tree.mount(administration(), '/reservation/administration', configPath)<br>
cherrypy.server.socket_host= "0.0.0.0"<br>
cherrypy.engine.start()