Jupyter Notebook运行websocket代码无WebSocketApp属性报错如何解决?
问题原因及解决方法
1. 包冲突导致属性丢失
WebSocketApp是websocket-client包提供的专属属性,如果你本地环境同时安装了websocket和websocket-client两个同名模块的包,Python导入时会优先匹配没有对应属性的websocket包,导致报错。Google Colab环境默认仅预装websocket-client包,不存在冲突,所以相同代码可以正常运行。
解决步骤:
- 先彻底卸载两个包:
pip uninstall -y websocket websocket-client
- 单独重装
websocket-client:
pip install websocket-client
2. Jupyter内核与pip环境不匹配
本地存在多个Python环境时,终端执行pip安装的包,可能和Jupyter Notebook当前运行的内核不属于同一个环境,导致安装的包不生效。
验证及解决步骤:
- 在Jupyter代码单元格执行以下代码,查看websocket模块的实际安装路径:
import websocket print(websocket.__file__)
如果输出路径不属于你正在使用的Python 3.8.3环境的site-packages目录,直接在Jupyter单元格内执行安装命令,确保包安装到当前内核对应环境:
!pip uninstall -y websocket websocket-client !pip install websocket-client
3. 本地同名文件干扰
检查Jupyter Notebook运行目录下是否存在名为websocket.py的自定义文件,或__pycache__目录下的同名缓存文件,删除对应文件后重新运行即可。
内容的提问来源于stack exchange,提问作者Nick
相关产品推荐
相关产品推荐

