本文主要是介绍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/
这篇关于Python websocket 模块 ImportError: cannot import name ‘WebSocketApp‘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!