CherryPy Hello World错误

Ale*_*lex 13 port localhost cherrypy

当我运行CherryPy Hello World时:

import cherrypy

class HelloWorld:
    def index(self):
        return "Hello world!"
    index.exposed = True

cherrypy.config.update({'server.socket_port': 8080,})
cherrypy.quickstart(HelloWorld())
Run Code Online (Sandbox Code Playgroud)

...我明白了:IOError:端口8080没有绑定'localhost'.会是什么呢?

Bra*_*des 10

如果你试图在Heroku上部署CherryPy,你不能使用环回来检查你是否真的打开了一个端口,那么你需要简单地禁用CherryPy的wait_for_occupied_port()功能,以便CherryPy的自我一致性检查不会确定它有,实际上, 未能启动.以下是我用来修复CherryPy的三行,以便它在Heroku上运行:

    from cherrypy.process import servers
    def fake_wait_for_occupied_port(host, port): return
    servers.wait_for_occupied_port = fake_wait_for_occupied_port
Run Code Online (Sandbox Code Playgroud)

  • 我的答案涉及运行**精确的**脚本并获得**确切**错误.我没有看到这个问题"与此无关".您可以从@ laurasia的回答中看到其他人认为我的答案也与此问题相关. (3认同)
  • 虽然这个答案非常有用,但它确实不属于这里,因为它与 OP 的原始问题几乎没有关系。在这种情况下,对您非常有价值的答案 __ask__ 更详细和具体的问题更合适,__then__ 当然,回答它:)。我意识到其他人在这里对这个问题有类似的答案......但它更像是一个线程劫持而不是任何东西。 (2认同)

Dou*_*der 7

你可能还有别的东西正在监听那个端口.

在Linux上做:

netstat -pnl | grep 8080
Run Code Online (Sandbox Code Playgroud)

并看看8080正在监听什么过程

在Windows上使用TCPView之类的东西来做同样的事情.