2016-07-25 85 views
1

我想在另一臺計算機上訪問我的CherryPy站點,但我嘗試了答案表單herehere,但都沒有工作。我在OSX El Capitan,Python 3.5.2上使用Mac,我相信CherryPy的最新版本。這是我目前的代碼,我不在乎地址是什麼,只是它的工作原理。謝謝你的幫助!Python 3(CherryPy)服務器不能在其他計算機上工作

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

# bind to all IPv4 interfaces 
cherrypy.config.update({'server.socket_host': '0.0.0.0'}) 
cherrypy.quickstart(HelloWorld()) 

編輯:

我可以從localhost:8080127.0.0.10.0.0.0訪問該網站。控制檯輸出是這樣的:

[26/Jul/2016:19:10:26] ENGINE Listening for SIGTERM. 
[26/Jul/2016:19:10:26] ENGINE Listening for SIGHUP. 
[26/Jul/2016:19:10:26] ENGINE Listening for SIGUSR1. 
[26/Jul/2016:19:10:27] ENGINE Bus STARTING 

Warning (from warnings module): 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cherrypy/_cpchecker.py", line 105 
    warnings.warn(msg) 
UserWarning: The Application mounted at '' has an empty config. 
[26/Jul/2016:19:10:27] ENGINE Started monitor thread '_TimeoutMonitor'. 
[26/Jul/2016:19:10:27] ENGINE Started monitor thread 'Autoreloader'. 
[26/Jul/2016:19:10:27] ENGINE Serving on http://0.0.0.0:8080 
[26/Jul/2016:19:10:27] ENGINE Bus STARTED 

我運行我的文件使用空閒,我沒有使用防火牆。

+0

1)它是否可從本地主機? 2)它真的綁定到某個TCP端口嗎?什麼是控制檯輸出? 3)你有沒有爲Mac設置防火牆? 4)你如何嘗試訪問應用程序? – webKnjaZ

+0

你已經提到了所有你嘗試過的,除了其他計算機的IP地址 –

+0

@webKnjaZ我試圖編輯我的問題來解決你的問題。我不確定TCP端口是什麼,或者如果綁定到一個端口,你能解釋一下嗎? – nedla2004

回答

1

解決方案在評論下面提到的問題,所以這個答案只是爲了標記這個問題的答案。

解決方法:如果你想看到來自另一臺計算機的CherryPy應用程序,找出CherryPy的運行計算機上的IP地址,在Windows上使用在Unix/Linux ifconfigipconfig。然後將此IP地址設置爲您的cherrypy配置,而不是127.0.0.10.0.0.0

cherrypy.config.update({'server.socket_host': '192.168.1.123'}) 

只要你是在同一個網絡上,你應該能夠訪問這個IP /端口上您所設置的應用程序:http://192.168.1.123:8080/(或類似)

如果您需要更改IP和端口,使用這個:

cherrypy.config.update({ 
    'server.socket_host' : '127.0.0.1', 
    'server.socket_port' : 9090, 
}) 
相關問題