Cherrypy服务器除localhost外无法使用

two*_*oyo 2 python cherrypy

我遇到了一个看起来已经解决但却不起作用的樱桃问题.我只能绑定localhost或127.0.0.1.Windows XP Home和Mac OS X(linux未经测试),cherrypy 3.1.2,python 2.5.4.这是我的应用程序的结束:

global_conf = {
       'global':    { 'server.environment= "production"'
                      'engine.autoreload_on : True'
                      'engine.autoreload_frequency = 5 '
                      'server.socket_host': '0.0.0.0',
                      'server.socket_port': 8080}
    }
cherrypy.config.update(global_conf)
cherrypy.tree.mount(home, '/', config = application_conf)
cherrypy.engine.start()
Run Code Online (Sandbox Code Playgroud)

nos*_*klo 6

呵呵,你的dict做错了什么:

>>> global_conf = {
...        'global':    { 'server.environment= "production"'
...                       'engine.autoreload_on : True'
...                       'engine.autoreload_frequency = 5 '
...                       'server.socket_host': '0.0.0.0',
...                       'server.socket_port': 8080}
...     }
>>> print global_conf
{'global': 
   {'server.environment= "production"engine.autoreload_on : Trueengine.autoreload_frequency = 5 server.socket_host': '0.0.0.0',
    'server.socket_port': 8080}
}
Run Code Online (Sandbox Code Playgroud)

更具体地说,你的dict definiton中缺少逗号和冒号.每个键/值对必须有一个冒号,并用逗号分隔.像这样的东西可能会起作用:

global_conf = {
       'global':    { 'server.environment': 'production',
                      'engine.autoreload_on': True,
                      'engine.autoreload_frequency': 5,
                      'server.socket_host': '0.0.0.0',
                      'server.socket_port': 8080,
                    }
              }
Run Code Online (Sandbox Code Playgroud)

查看python 词典文档以获取更多信息.