2

解決したように見えるが機能しない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()
4

2 に答える 2

7

ええと、あなたはあなたの口述で何か間違ったことをしています:

>>> 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}
}

より具体的には、辞書の定義にコンマとコロンがありません。各キーと値のペアにはコロンを付ける必要があり、コンマで区切ります。このようなものがうまくいくかもしれません:

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,
                    }
              }

詳細については、 Python辞書のドキュメントを確認してください。

于 2009-10-12T16:44:13.260 に答える
3

デュアルスタック OS を使用している場合、localhost が 127.0.0.1 (IPv4 localhost) ではなく ::1 (IPv6 localhost) に解決されている可能性があります。http://127.0.0.1:8080を使用してサーバーにアクセスしてみてください。

また、デュアルスタック対応の OS を使用している場合は、server.socket_host を「::」に設定すると、IPv6 と IPv4 のすべてのアドレスでリッスンします。

于 2009-10-21T15:44:15.240 に答える