19

我正在使用 python 和 CherryPy 创建一个大约 2 人使用的简单内部网站。我使用带有 CherryPy.quickstart 的内置网络服务器,并且从不弄乱配置文件。我最近更换了机器,所以我安装了最新的 Python 和cherrypy,当我运行该站点时,我可以从 localhost:8080 访问它,但不能通过 IP 或 Windows 机器名称访问它。这可能是机器配置差异或 CherryPy 或 Python 的较新版本。有什么想法可以绑定到正确的 IP 地址吗?

编辑:为了清楚起见,我目前根本没有配置文件。

4

3 回答 3

39
server.socket_host: '0.0.0.0'

...也可以。那是 IPv4 INADDR_ANY,意思是“监听所有接口”。

在配置文件中,语法是:

[global]
server.socket_host: '0.0.0.0'

在代码中:

cherrypy.server.socket_host = '0.0.0.0'
于 2008-09-30T06:55:25.050 回答
18

这取决于您如何运行cherrypy init。

如果使用cherrypy 3.1语法,那将这样做:

cherrypy.server.socket_host = 'www.machinename.com'
cherrypy.engine.start()
cherrypy.engine.block()

当然你可以有更花哨的东西,比如子类化服务器类,或者使用配置文件。这些用途包含在文档中。

但这应该足够了。如果不只是告诉我们你在做什么和cherrypy版本,我会编辑这个答案。

于 2008-09-22T16:16:12.190 回答
8
import cherrypy

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

cherrypy.server.socket_host = '0.0.0.0' # put it here 
cherrypy.quickstart(HelloWorld())
于 2016-12-28T18:13:44.370 回答