Tornado安装
进入:https://pypi.org 搜tornado
进入tornado这个文件夹
执行:python setup.py install
Tornado应该运行在类Unix平台,在线上部署时为了最佳的性能和扩展性,仅推荐Linux和BSD(因为充分利用Linux的epol工具和BSD的kqueue工具,是Tormado不依靠多进程/多线程而达到高性能的原因)
对于MacOSx,虽然也是衍生自BSD并且支持kqueue,但是其网络性能通常不太给力,因此仅推荐用于开发
对于Windows,Tornado官方没有提供配置支持,但是也可以运行起来,不过仅推荐在开发中使用,windows上开发容易出现器官的错误,下文我将提到一种典型错误并给出解决方法
安装好tornado后启动pycharm运行一个“helloword”测试
import tornado.web # web服务基本功能都封装在此模块中 import tornado.ioloop # 开启循环,让服务一直等待请求的到来 class IndexHandler(tornado.web.RequestHandler): def get(self,*args,**kwargs): self.write("Hello, bilibili") if __name__ == "__main__": app = tornado.web.Application([(r"/",IndexHandler)]) app.listen(8000) tornado.ioloop.IOLoop.current().start()
如果报错,内容大概如下:
参考来源:https://www.yht7.com/news/12601
是由于 python3.8 asyncio 在 windows 上默认使用 ProactorEventLoop 造成的,而不是之前的 SelectorEventLoop。jupyter 依赖 tornado,而 tornado 在 window 上需要使用 SelectorEventLoop,所以产生这个报错.
请看官方文档:https://www.tornadoweb.org/en/stable/index.html#installation
解决方法是,在 tornado开始执行前添加以下代码,在windows下单独处理:
# windows 系统下 tornado 使用 使用 SelectorEventLoop import platform if platform.system() == "Windows": import asyncio asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
然后:
永远年轻,永远热泪盈眶,永远怀抱希望,永远相信美好的事情即将发生。