Python 如何使用CherryPy配置ip地址?

Python 如何使用CherryPy配置ip地址?,python,cherrypy,Python,Cherrypy,我正在使用python和CherryPy创建一个简单的内部网站,大约有两个人使用。我在CherryPy.quickstart中使用内置的Web服务器,从来没有弄乱过配置文件。我最近更换了机器,所以我安装了最新的Python和cherrypy,当我运行该站点时,我可以从localhost:8080访问它,但不能通过IP或windows机器名。这可能是机器配置的差异,也可能是CherryPy或Python的更新版本。你知道如何绑定到正确的IP地址吗 编辑:为了清楚起见,我目前根本没有配置文件。这取决

我正在使用python和CherryPy创建一个简单的内部网站,大约有两个人使用。我在CherryPy.quickstart中使用内置的Web服务器,从来没有弄乱过配置文件。我最近更换了机器,所以我安装了最新的Python和cherrypy,当我运行该站点时,我可以从localhost:8080访问它,但不能通过IP或windows机器名。这可能是机器配置的差异,也可能是CherryPy或Python的更新版本。你知道如何绑定到正确的IP地址吗


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

这取决于您如何运行cherrypy init

如果使用cherrypy 3.1语法,则可以:

cherrypy.server.socket_host = 'www.machinename.com'
cherrypy.engine.start()
cherrypy.engine.block()
当然,您可以有一些更奇特的东西,比如对服务器类进行子类化,或者使用配置文件。这些用途包含在本手册中

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

server.socket_host: '0.0.0.0'
…也会起作用。这就是dr_ANY,意思是“监听所有接口”

在配置文件中,语法为:

[global]
server.socket_host: '0.0.0.0'
代码:

cherrypy.server.socket_host = '0.0.0.0'

在调用cherrypy.quickstart之前,我只需要第一行代码,感谢链接在“使用配置文件”时被断开——请注意,
cherrypy.quickstart(application(),config=conffile)
可以将可选配置文件作为第二个参数(例如,在cherrypy教程中,它是tutconf),据我所知,这将覆盖程序中的cherrypy.server.socket_主机集。编辑了以上内容以反映这一点。为什么您需要收听
所有
界面?你能在这里再解释一下吗?这在docker集装箱中很常见。
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())