报错显示没有DefaultSelector类(已解决)

来源:4-5 select、poll和epoll

我的意中人嫁给了我哥

2021-05-01

5.0:

问题解决了,文件不能命名select,我估计他会冲突……

啊当场去世……

4.0:

下载了pycham试了也是一样的报错。应该不是vscode的问题。

为了确定是不是win10的问题,连夜折腾了个虚拟机搞了个win7,然后依旧是

ImportError: cannot import name ‘DefaultSelector’ from ‘selectors’

……

求老师能不能讲解一下,是不是我的Python配置的问题导致这个包调用有问题?

3.0:

我又仔仔细细看了一遍官方文档,他告诉我:

DefaultSelector 是一个指向当前平台上可用的最高效实现的别名:这应为大多数用户的默认选择。
注解 受支持的文件对象类型取决于具体平台:在 Windows 上,支持套接字但不支持管道,而在 Unix
上两者均受支持(某些其他类型也可能受支持,例如 fifo 或特殊文件设备等)。

难道是因为我win10系统的问题?然后我又查了别的什么博客,有人提到

selectors模块:它具有根据平台选出最佳的IO多路机制,比如在win的系统上他默认的是select模式而在linux上它默认的epoll,建议使用selectors。

但这意思那win也能用啊??我看老师用的貌似也是win10系统,求老师能不能讲解一下到底要怎么跑这个模块!
2.0:
老师我按照官方文档

from selectors import DefaultSelector,EVENT_WRITE,EVENT_READ

这句改成了如下

import selectors;

然后

selector = DefaultSelector()

改成了如下

selector = selectors.DefaultSelector()

结果他还是告诉我AttributeError: module ‘selectors’ has no attribute ‘DefaultSelector’
……这种情况我是selectors库有问题吗?还是我编译环境是vscode的原因?
1.0:
ImportError: cannot import name ‘DefaultSelector’ from ‘selectors’想问一下老师不知道是不是版本问题?我的Python是3.7 的,但是我用的编译环境不是pycham是vscode,在网上搜了一圈都没有类似问题,我最开始以为是要下载selectors包的问题,所以我下载了,但是旧这样报错……实在不知道这问题到底是哪里来的了……
报错图片

写回答

1回答

bobby

2021-05-03

你这个记录过程相当优秀啊,python中文件名命名成和内置的包同名可以说对于不少同学来说都是一个天坑

0
0

Tornado从入门到进阶 打造支持高并发的技术论坛

异步IO并发编程/Form,ORM/aiomysql、peewee-async/epoll

593 学习 · 350 问题

查看课程