在Win 7上使用Tornado Web服务器运行Hello World的错误(Python 2.5)

5 投票
2 回答
3311 浏览
提问于 2025-04-17 02:46

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

我安装了pycurl-7.15.5.1(带有Windows二进制文件)和tornado(通过pip安装)。

当我运行以下的“你好,世界”代码时:

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()

我遇到了以下错误:

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'

2 个回答

0

来自Tornado网页(http://www.tornadoweb.org/)

平台:Tornado应该可以在任何类Unix的平台上运行,不过为了获得最佳的性能和扩展性,推荐使用Linux和BSD(包括像Mac OS X这样的BSD衍生系统)。

我觉得它和Windows不兼容。

类似Tornado的功能可以通过Twisted框架来实现,http://twistedmatrix.com,这个框架可以在Windows上使用。

有趣的参考资料有:

http://twistedmatrix.com/documents/current/web/howto/web-in-60/index.html

还有:

http://twistedmatrix.com/documents/current/web/howto/web-in-60/dynamic-content.html

4

Tornado在Windows上对IPv6有些混乱。你可以通过指定想要监听的IP地址来解决这个问题,方法如下:

application.listen(8888,'127.0.0.1')

或者你也可以试试这样:

application.listen(8888,'0.0.0.0')

撰写回答