当前位置: 首页 > news >正文

python+websockets,报错RuntimeError: no running event loop

最近有个需求,需要用到websockts,之前顶多也就是作为客户端去请求数据,这次要写服务端,之前也没有写过,上网找了一下资料,还是挺多的。

资料一,资料二

一般从最基础的来嘛,就是写个echo,返回收到的值就行了

import asyncio
import websocketsasync def echo(websocket, path):async for message in websocket:print(f"收到消息: {message}")await websocket.send(f"服务器响应: {message}")# 启动 WebSocket 服务器
start_server = websockets.serve(echo, "0.0.0.0", 8765)asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

结果执行直接报错,RuntimeError: no running event loop。

我就很费解啊,又上网找资料,各种找,发现说来说去,提供的代码跟这个差不多,顶多一个是加了一个set_event_loop但是没用,我不懂,也就不深究了。

后来发现,我在另一台电脑可以执行成功的,然后顺势发现,因为我的websockets库已经升级至14.0,最新版是15.0.1,而以上代码在12.0是可以运行的,但如果我降级的话,gradio会提示需要websockets在13.0之上,怀疑可能是13.0之后有个大升级,导致对旧版本不一定兼容,如果直接降级的话,那相关的库都要跟着一起降。但是到底做了什么升级,新版应该怎么写,一筹莫展。最后问了下文心,回答就不贴了,就是给了两个解决方法,其中之一就还是上面那个set,但提供了另一个,还真的能解决。换成以下形式。

async def main():async with websockets.serve(echo, "0.0.0.0", 9999):await asyncio.Future()if __name__ == "__main__":asyncio.run(main())

不过真正运行的时候,还是会报错,说是找不到path这个参数。

再次搜索之下,这次就全搜出来了

ptyhon websockets库报错 ...conn_handler... missing 1 required positional argument: ‘path‘_connection handler failed-CSDN博客

这篇文章中,有些比较详细的启动代码,我这边就不贴了。

以此记录一下,困扰了我半天的问题,差点还没入门就放弃。话说这种库更新后,应该去哪查官方文档,半天也没搜到,这一更新后,网上的资料就都过时了,且变成直接无法使用。

http://www.dtcms.com/a/600694.html

相关文章:

  • 自己做网站流程龙口市最新公告
  • 自助建站系统介绍wordpress 百度推广
  • 基于Springboot的汽车推荐系统设计与实现7f7h74np(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
  • DBLoss: Decomposition-based Loss Function for Time Series Forecasting 论文阅读
  • STM32F103学习笔记-16-RCC(第4节)-使用 HSI 配置系统时钟并用 MCO 监控系统时钟
  • Git 中新建学习分支 + 暂存修改 + VSCode 可视化查看改动(超详细教程)
  • Linux高效编程与实战:自动化构建工具“make/Makefile”和第一个系统程序——进度条
  • Docker 相关使用收录
  • 【详细步骤解析】爬虫小练习——爬取豆瓣Top250电影,最后以csv文件保存,附源码
  • Docker-存储
  • wap手机网站模板上饶网站建设3ao cc专业a
  • 【Nginx】Nginx 多协议负载均衡实战:StarRocks 与 MinIO 代理配置全解析
  • 域名注册和网站设计服务如何做贴吧类网站多钱
  • python+uniapp基于微信小程序的垃圾分类信息系统
  • C语言编译器安卓版 | 强大功能助力编程学习与实践
  • STM32使用金属探测传感器自制金属探测仪
  • vmware嵌套安装esxi7.0.3扩容vmfs
  • 使用 BR 备份 TiDB 到 AWS S3 存储
  • 【OpenCV + VS】OpenCV 绘图:绘制矩形、圆形、椭圆形、线条等
  • 易语言反编译工具 - 高效破解易语言程序的利器
  • 11年始终专注营销型网站提供网站建设小程序制作
  • AOSP Android13 Launcher3——TransformParams 类
  • 网站推广问题推广公司网站有哪些方式
  • 成都网站建设公司电话美食网站建设多少钱
  • 【把Linux“聊”明白】进程的概念与状态
  • GIT版本管理工具轻松入门 | TortoiseGit,本地 Git 仓库和 Git 概念,笔记02
  • 什么是美颜sdk?美型功能开发与用户体验优化实战
  • 在 React 项目中使用 Ky 与 TanStack Query 构建现代化数据请求层
  • 计算机网络---传输层安全 SSL与TLS
  • 【Linux篇】信号机制深度剖析:从信号捕捉到SIGCHLD信号处理