Python 3 (CherryPy) 服务器无法在其他计算机上运行
Python 3 (CherryPy) Server Not Working on Other Computer
我想在另一台计算机上访问我的 CherryPy 网站,但我已经尝试了 here and here 的答案,但都没有用。我正在使用 Mac 和 OSX El Capitan,Python 3.5.2,我相信是最新版本的 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:8080
127.0.0.1
和 0.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
我 运行 我的文件使用 IDLE,我没有使用防火墙。
问题下方的评论中提到了解决方案,因此此答案仅用于将此问题标记为已回答。
解决方案:如果您想从另一台计算机上查看您的 cherrypy 应用程序,请在 运行 上使用 ifconfig
或 [=] 找到 cherrypy 所在计算机上的 IP 地址13=] 在 Windows 上。然后将此 IP 地址设置为您的 cherrypy 配置,而不是 127.0.0.1
或 0.0.0.0
.
cherrypy.config.update({'server.socket_host': '192.168.1.123'})
只要您在同一网络上,就应该能够访问您设置的 IP/port 上的应用程序:http://192.168.1.123:8080/(或类似)
如果您需要更改 IP 和端口,请使用:
cherrypy.config.update({
'server.socket_host' : '127.0.0.1',
'server.socket_port' : 9090,
})
我想在另一台计算机上访问我的 CherryPy 网站,但我已经尝试了 here and here 的答案,但都没有用。我正在使用 Mac 和 OSX El Capitan,Python 3.5.2,我相信是最新版本的 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:8080
127.0.0.1
和 0.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
我 运行 我的文件使用 IDLE,我没有使用防火墙。
问题下方的评论中提到了解决方案,因此此答案仅用于将此问题标记为已回答。
解决方案:如果您想从另一台计算机上查看您的 cherrypy 应用程序,请在 运行 上使用 ifconfig
或 [=] 找到 cherrypy 所在计算机上的 IP 地址13=] 在 Windows 上。然后将此 IP 地址设置为您的 cherrypy 配置,而不是 127.0.0.1
或 0.0.0.0
.
cherrypy.config.update({'server.socket_host': '192.168.1.123'})
只要您在同一网络上,就应该能够访问您设置的 IP/port 上的应用程序:http://192.168.1.123:8080/(或类似)
如果您需要更改 IP 和端口,请使用:
cherrypy.config.update({
'server.socket_host' : '127.0.0.1',
'server.socket_port' : 9090,
})