2008-09-22 182 views
16

我正在使用python和CherryPy创建一个简单的内部网站,约2人使用。我使用CherryPy.quickstart内置的网络服务器,并且从不与配置文件混淆。我最近更改了机器,因此我安装了最新的Python和cherrypy,并且在运行该站点时,我可以从localhost:8080访问它,但不能通过IP或Windows计算机名称访问它。这可能是机器配置差异或CherryPy或Python的更新版本。任何想法如何我可以绑定到正确的IP地址?如何使用CherryPy配置IP地址?

编辑:要清楚,我目前还没有一个配置文件在所有。

回答

15

这就要看你是如何运行CherryPy的初始化。

如果使用CherryPy的3.1语法,那尔德做到这一点:

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

当然,你可以有更多的东西花哨,像继承服务器类,或使用配置文件。这些用途涵盖在the documentation

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

+1

我只需要第一行我呼吁cherrypy.quickstart之前,由于 – 2008-09-22 16:32:35

+0

链接在使用配置文件时破坏了 – 2016-09-02 14:28:22

33
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' 
4
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())