Python websockets模块示例脚本运行报错:参数不匹配求助
解决websockets聊天服务器TypeError问题
问题原因
你遇到的这个错误,大概率是websockets版本不匹配导致的:
- 新版本websockets(10.0+)的服务器处理函数只需要接收
websocket这1个参数 - 旧版本websockets(9.x及更早)要求处理函数必须接收
websocket和path两个参数,哪怕你用不到path参数
如果你复制的是新版官方示例(仅定义1个参数),但本地安装的是旧版websockets,服务器启动后会自动往hello()里传入2个参数,从而触发这个TypeError。
解决步骤
方法1:匹配版本修改代码
- 先查看本地websockets版本:
pip show websockets - 如果版本是10.0及以上:确保
hello()函数定义为async def hello(websocket): # 你的业务逻辑代码 - 如果版本是9.x或更早:将
hello()修改为接收两个参数async def hello(websocket, path): # 你的业务逻辑代码,path参数可直接忽略
方法2:升级到最新版websockets
直接在终端执行升级命令,之后使用新版官方代码即可:
pip install --upgrade websockets
内容的提问来源于stack exchange,提问作者PBRParker
相关产品推荐
相关产品推荐

