2008-09-22 151 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())