解决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同时给两个收件人发送邮件的方法
Apr 30 Python
python 调用win32pai 操作cmd的方法
May 28 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
详解django的serializer序列化model几种方法
Oct 16 Python
python如何从文件读取数据及解析
Sep 19 Python
python自动化实现登录获取图片验证码功能
Nov 20 Python
Python partial函数原理及用法解析
Dec 11 Python
python处理RSTP视频流过程解析
Jan 11 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
Apr 22 Python
keras绘制acc和loss曲线图实例
Jun 15 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
Aug 19 Python
一篇文章教你用python画动态爱心表白
Nov 22 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弹出错误警告函数扩展性强
2014/01/17 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
两种简单实现菜单高亮显示的JS类代码
2010/06/27 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
JS中min函数实例讲解
2019/02/18 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
Python检测生僻字的实现方法
2016/10/23 Python
Python 3中print函数的使用方法总结
2017/08/08 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
HTML5 Web 存储详解
2016/09/16 HTML / CSS
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
药物学专业学生的自我评价
2013/10/27 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
行政办公室岗位职责
2014/03/18 职场文书
股权投资意向书
2014/04/01 职场文书
刑事法律意见书
2015/06/04 职场文书
邹越演讲观后感
2015/06/15 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
导游词之烟台威海蓬莱
2019/11/14 职场文书