解决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导入oracle数据的方法
Jul 10 Python
编写Python小程序来统计测试脚本的关键字
Mar 12 Python
使用C++扩展Python的功能详解
Jan 12 Python
浅谈Python中的私有变量
Feb 28 Python
Python数据集切分实例
Dec 08 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
Feb 26 Python
numpy中三维数组中加入元素后的位置详解
Nov 28 Python
解决tensorflow添加ptb库的问题
Feb 10 Python
Python 调用有道翻译接口实现翻译
Mar 02 Python
Python爬取YY评级分数并保存数据实现过程解析
Jun 01 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
Sep 29 Python
基于Python的EasyGUI学习实践
May 07 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仿盗链代码
2012/06/03 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
2007/12/08 Javascript
javascript 写类方式之七
2009/07/05 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
jQuery常用知识点总结以及平时封装常用函数
2016/02/23 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
Python入门篇之面向对象
2014/10/20 Python
python中的闭包用法实例详解
2015/05/05 Python
python实现壁纸批量下载代码实例
2018/01/25 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
解决python replace函数替换无效问题
2020/01/18 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
Python 图片处理库exifread详解
2021/02/25 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
《小儿垂钓》教学反思
2014/02/23 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
网上祭先烈心得体会
2014/09/01 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
Python实现数据的序列化操作详解
2022/07/07 Python