用龙卷风web服务器运行你好世界的问题(Python 2.5,Win 7)

hal*_*tTm 5 python tornado ipv6

我在Windows 7(64位)上使用Python 2.5.

我安装了pycurl-7.15.5.1(带有win二进制文件)和龙卷风(使用pip).

当我运行以下hello world代码时:

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello World!")

if __name__=='__main__':
    app = tornado.web.Application([(r"/",MainHandler),])
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误: -

Traceback (most recent call last):

  File "hello_tornado.py", line 11, in <module>
    application.listen(8888)
  File "c:\Python25\Lib\site-packages\tornado\web.py", line 1193, in listen
    server.listen(port, address)
  File "c:\Python25\Lib\site-packages\tornado\netutil.py", line 100, in listen
    sockets = bind_sockets(port, address=address)
  File "c:\Python25\Lib\site-packages\tornado\netutil.py", line 263, in bind_sockets
    sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 1)
  AttributeError: 'module' object has no attribute 'IPV6_V6ONLY'
Run Code Online (Sandbox Code Playgroud)

Sec*_*Sec 4

显然,Tornado 在 Windows 上对 IPv6 有一些混淆。您可以通过指定您希望它侦听的 IP 来修复它,如下所示:

application.listen(8888,'127.0.0.1')
Run Code Online (Sandbox Code Playgroud)

或者可能

application.listen(8888,'0.0.0.0')
Run Code Online (Sandbox Code Playgroud)