Python websocket 模块 ImportError: cannot import name ‘WebSocketApp‘

____tz_zs

问题解决

运行 from websocket import WebSocketApp 语句时,
报错 ImportError: cannot import name ‘WebSocketApp’

查看发现,我的电脑中有两个 websocket 相关的包,分别是版本是:

websocket                          0.2.1                 
websocket-client                   0.56.0  

websocket 0.2.1 这个包我忘了是什么时候安装的,但我知道,我代码中使用的是 websocket-client 0.56.0 包。
所以,我卸载了两个包并重新安装了 websocket-client

sudo pip3 uninstall websocket
sudo pip3 uninstall websocket-client
sudo pip3 install websocket-client

此时,bug 得到了修复。

一个小实验

我做了个实验,再次安装了 websocket 包

sudo pip3 install websocket

果然 bug 得到了复现。

实验发现,安装 websocket-client 后,dist-packages 中新出现了 websocket 和 websocket_client-0.56.0.dist-info 两个文件夹。
安装 websocket 后,dist-packages 中多出了 websocket-0.2.1.dist-info 文件夹,并且 websocket 文件夹中的文件(如:init等)被覆写。
所以,我们使用的时候找不到 websocket_client 0.56.0 这个包,从而出现以上 bug。

参考

https://stackoverflow.com/questions/37442193/cannot-import-websocketapp-form-websocket-in-python

2021-08-02 补充

本文中的 websocket 库是一个未实现的库,没有描述信息,没有发布者等。

pypi地址 https://pypi.org/project/websocket/

本文中的 websocket-client 库是一个简单好用的同步的 websocket 的客户端的库,基于回调的方式使用。

pypi地址: https://pypi.org/project/websocket-client/
GitHub地址: https://github.com/websocket-client/websocket-client
文档地址: https://websocket-client.readthedocs.io/en/latest/

websockets 库也是一个很火的库,在 github 上已经有 3.5k 的星了,能用于实现服务器端和客户端,他是基于 asyncio (Python 的标准异步 I/O 框架) 实现的,提供一个基于协程的 API 来管理 Python 中的 WebSocket 连接。 因为基于 asyncio 所以只能在 Python3 中使用。

pypi地址: https://pypi.org/project/websockets/
GitHub地址: https://github.com/aaugustin/websockets
文档地址: https://websockets.readthedocs.io/en/stable/

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值