解决Python3.8运行tornado项目报NotImplementedError错误


Posted in Python onSeptember 02, 2020

今天拉了一个使用了tornado的项目在本地跑,按照源码作者的步骤配置完,运行,直接报错了,要求环境Python3.6+,我装的是Python3.8,理论上应该直接正常运行的,报错信息:

Traceback (most recent call last):
  File "ice_server.py", line 150, in <module>
    RunServer.run_server(port=p, host=h)
  File "ice_server.py", line 125, in run_server
    tornado_server.start()
  File "D:\PycharmProjects\ice\venv\lib\site-packages\tornado\tcpserver.py", line 244, in start
    self.add_sockets(sockets)
  File "D:\PycharmProjects\ice\venv\lib\site-packages\tornado\tcpserver.py", line 165, in add_sockets
    self._handlers[sock.fileno()] = add_accept_handler(
  File "D:\PycharmProjects\ice\venv\lib\site-packages\tornado\netutil.py", line 279, in add_accept_handler
    io_loop.add_handler(sock, accept_handler, IOLoop.READ)
  File "D:\PycharmProjects\ice\venv\lib\site-packages\tornado\platform\asyncio.py", line 100, in add_handler
    self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ)
  File "C:\Users\huan\AppData\Local\Programs\Python\Python38\lib\asyncio\events.py", line 501, in add_reader
    raise NotImplementedError
NotImplementedError

一番谷歌原来对于这个问题tornado的参与者们已经收到了很多反馈,有个回复里这么说:

Python 3.8 asyncio is going to make the "proactor" event loop the default, instead of the current "selector" event loop. This is a problem for Tornado because the proactor event loop doesn't support the unix-style add_reader APIs that Tornado uses.

Anyone using Tornado 5+ on windows with python 3.8 will need to configure asyncio to use the selector event loop; we'll have to document this. We should also try to detect the use of a proactor event loop and give a clear error message

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

解决办法

找到这个项目使用的python环境的lib\site-packages,做下面的修改,在path-to-python\lib\site-packages\tornado\platform\asyncio.py开头添加代码:

import sys

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

这样就可以正常运行了。

总结

到此这篇关于Python3.8运行tornado项目报NotImplementedError错误的文章就介绍到这了,更多相关Python3.8运行tornado项目报错内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 面向对象 成员的访问约束
Dec 23 Python
Python的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
Python遍历目录中的所有文件的方法
Jul 08 Python
在python中安装basemap的教程
Sep 20 Python
python中类的属性和方法介绍
Nov 27 Python
python web自制框架之接受url传递过来的参数实例
Dec 17 Python
linux环境中没有网络怎么下载python
Jul 07 Python
在交互式环境中执行Python程序过程详解
Jul 12 Python
python性能测量工具cProfile使用解析
Sep 26 Python
PyCharm使用Docker镜像搭建Python开发环境
Dec 26 Python
Python Selenium XPath根据文本内容查找元素的方法
Dec 07 Python
python自动化操作之动态验证码、滑动验证码的降噪和识别
Aug 30 Python
详解python with 上下文管理器
Sep 02 #Python
Python 的 __str__ 和 __repr__ 方法对比
Sep 02 #Python
Python datetime 如何处理时区信息
Sep 02 #Python
浅析python中的del用法
Sep 02 #Python
浅析NumPy 切片和索引
Sep 02 #Python
详解Python 函数参数的拆解
Sep 02 #Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
Sep 02 #Python
You might like
PHP 已经成熟
2006/12/04 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
2014/02/12 Javascript
jQuery实现鼠标经过事件的延时处理效果
2020/08/20 Javascript
JavaScript中的时间处理小结
2016/02/24 Javascript
JS ES6多行字符串与连接字符串的表示方法
2017/04/26 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
python+selenium开发环境搭建图文教程
2017/08/11 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
Python request使用方法及问题总结
2020/04/26 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
班级寄语大全
2014/04/10 职场文书
小学五年级学生评语
2014/04/22 职场文书
初三学习计划书范文
2014/04/30 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
社区文艺活动方案
2014/08/19 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
2015年药房工作总结
2015/04/25 职场文书
毕业酒会致辞
2015/07/29 职场文书
宿舍管理制度范本
2015/08/07 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js