我正在使用python和CherryPy创建一个约2人使用的简单内部网站。我使用带有CherryPy.quickstart的内置网络服务器,并且从不搞乱配置文件。我最近更换了机器,所以我安装了最新的Python和cherrypy,当我运行该站点时,我可以从localhost:8080访问它,但不能通过IP或Windows机器名称访问它。它可能是机器配置差异或CherryPy或Python的较新版本。我有什么想法可以绑定到正确的IP地址吗?
编辑:为了说清楚,我目前根本没有配置文件。
答案 0 :(得分:34)
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'
答案 1 :(得分:17)
这取决于你如何运行cherrypy init。
如果使用cherrypy 3.1语法,请执行以下操作:
cherrypy.server.socket_host = 'www.machinename.com'
cherrypy.engine.start()
cherrypy.engine.block()
当然,您可以拥有更多花哨的东西,例如子类化服务器类或使用配置文件。这些用途包含在the documentation中。
但这应该足够了。如果不只是告诉我们你在做什么和樱桃版,我将编辑这个答案。
答案 2 :(得分:6)
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())