今天跑之前的一个tornado ,突然就报错了NotImplementedError,之前还还好好的。

原来是Python版本更新到3.8出的问题。

大概是Python3.8的asyncio改变了循环方式,因为这种方式在windows上不支持相应的add_reader APIs,就会抛出NotImplementedError错误。

于是乎加了一句:

import sys
import asyncioif sys.platform == 'win32':asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())

这样就不报错了。

完整代码如下:

from abc import ABCimport tornado.ioloop
import tornado.web
import time
import sys
import asyncioif sys.platform == 'win32':asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())class ListHandler(tornado.web.RequestHandler, ABC):def get(self):self.write("Get Handler ListHandler")def post(self):headers = self.request.headersbody = self.request.bodyprint(headers)b2 = str(body, encoding='UTF-8')print(b2)time.sleep(0.5)self.write("Post Handler ListHandler")class HeartHandler(tornado.web.RequestHandler, ABC):def get(self):#print(self.get_argument("name"), self.get_argument("code"))r = {"success": True,"Message": "添加成功!","code": 200,"result": None}self.write(r)def post(self):headers = self.request.headersbody = self.request.bodyprint(headers)b2 = str(body, encoding='UTF-8')print(b2)self.write("Test Post Handler")class Application(tornado.web.Application):def __init__(self):handlers = [(r'/quality/business/supplier/list', ListHandler),(r'/quality/business/supplier/heart', HeartHandler),]tornado.web.Application.__init__(self, handlers)if __name__ == "__main__":app = Application()app.listen(8000)print("Tornado Started in port 8000,http://127.0.0.1:8000")tornado.ioloop.IOLoop.current().start()

tornado 报错 NotImplementedError相关推荐

  1. Python3.8安装 jupyter报错 NotImplementedError

    报错如下: 原因: 是由于 python3.8 asyncio 在 windows 上默认使用 ProactorEventLoop 造成的,而不是之前的 SelectorEventLoop.jupyt ...

  2. NotImplementedError: Cannot convert a symbolic Tensor报错与解决

    问题 实验环境 TensorFlow2.4.1(Macbook m1 with conda-forge) 报错信息 NotImplementedError: Cannot convert a symb ...

  3. ubuntu 下安装 matplotlib 报错 numpy tornado pyparsing freetye png 依赖没有

    直接使用sudo easy_install matplotlib 报错 几个依赖关系不好找,分别是numpy tornado pyparsing freetye png sudo apt-get bu ...

  4. tornado创建项目后build vxworks报错unable to allocate heap, heap_chunk_size 587202560, Win32 error 0

    tornado创建项目后build vxworks报错unable to allocate heap, heap_chunk_size 587202560, Win32 error 0 build报错 ...

  5. 自定义报错返回_Keras编写自定义层--以GroupNormalization为例

    1. Group Normalization 介绍 Batch Normalization(BN)称为批量归一化,可加速网络收敛利于网络训练.但BN的误差会随着批量batch的减小而迅速增大.FAIR ...

  6. 安装anaconda 报错 failed to create menus

    报错发现百度搜索的解决办法五花八门,实际试过几个不能有效解决问题,遂专心研究出错日志,发现报错找不到python3.X.dll,遂猜测是未安装好python3.7所致(回忆起可能是与安装的是32位而不 ...

  7. idea java编译报错_intellij-idea,java_idea 编译报错,intellij-idea,java - phpStudy

    idea 编译报错 简单的 helloworld 竟然坑了我一天啦 /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/bi ...

  8. python tk 当输入数值错误是报错_Python的异常处理

    一.Python标准异常总结 所谓异常就是运行期检测到的错误.计算机语言针对可能出现的错误定义了异常类型,某种错误引发对应的异常时,异常处理程序将被启动,从而恢复程序的正常运行. Python标准异常 ...

  9. python语法报错_Python语法的常见错误和处理异常

    在学习Python的过程中,一定会遇到很多困难,我相信很多时候的,报错就会是让人抓狂,一个好的程序员最主要的特质,就是处理错误的能力.在面对每次遇到的问题,要多总结多做笔记,争取下次避免犯同样的错误, ...

最新文章

  1. C++ mutable
  2. MySQL 的“root”用户修改密码
  3. 转:GridView 中如何给删除按钮添加提示
  4. Android开发需要了解的 IM 知识
  5. Angular ngcc和ivy
  6. fork、getpid、getppid函数
  7. pythonvim编辑教程_Pycharm学习教程(6) Pycharm作为Vim编辑器使用
  8. c# bool?和bool_C#中的bool关键字
  9. SQLSERVER压缩数据文件的用处有多大
  10. PHP目前比较常见的五大运行模式
  11. C++合并两个有序数组成一个有序数组时间复杂度最小的解法
  12. 通过yum安装redis
  13. 爱情公寓不为人知的创作历程
  14. 【Unity】新手初学Animation实现人物移动
  15. 洛谷刷题C语言:Bold、饱食、公平の意、DOM、
  16. asp.net房屋出租系统。 采用的典型的三层架构和mvc相结合的技术
  17. 全球安全资讯精选 2017年 第七期: Equifax 泄漏 1.43 亿用户数据
  18. 山东科技大学OJ题库 1097 判断三角形的性质
  19. 简单实现直播手绘礼物
  20. angular的run方法

热门文章

  1. 代码坏味道之过大的类
  2. NFT资产分析bitsCrunch获360万美元融资 Coinbase, Crypto.com等知名机构参投
  3. 如何在mac电脑上免费使用GitKraken
  4. java ac自动机_Java实现AC自动机全文检索示例
  5. 一文搞懂什么是粒子群优化算法(Particle Swarm Optimization,PSO)【附应用举例】
  6. 基于JAVA的新闻文章发布管理系统,可以用来参考学习【数据库设计、源码、开题报告】
  7. 51汇编:LED点阵与键盘按键------2019年寒假休息在家看书
  8. android 仿手机助手下载进度条效果
  9. 使用vue-grid-layout完成桌面拖拽布局功能(实现两个元素互换位置)
  10. Linux ❉ 权限位rwx