调用Bybit API时出现ModuleNotFoundError: No module named 'jsonschema.compat'如何解决
问题根因
ModuleNotFoundError: No module named 'jsonschema.compat'报错的核心原因是:jsonschema v4.18.0及以上版本正式移除了废弃的jsonschema.compat兼容模块,而你使用的Bybit封装包目前还依赖该旧模块的接口。此前功能可正常运行是因为你当时使用的是低于4.18.0版本的jsonschema,新虚拟环境安装时默认拉取了最新版jsonschema才触发报错。
解决方法
- 方法1(推荐,操作最简单):将虚拟环境内的jsonschema降级到最后一个兼容的稳定版本4.17.3
激活你的目标虚拟环境后,执行以下命令即可:
安装完成后重新运行代码即可正常调用Bybit相关接口。pip install jsonschema==4.17.3 - 方法2(适用于必须使用高版本jsonschema的场景):手动修改Bybit封装包的依赖代码
找到Bybit包中引用jsonschema.compat的代码行,将原来从compat模块导入的对象,替换为新版jsonschema或Python标准库对应的实现即可,比如原from jsonschema.compat import str_types可以替换为str_types = (str,)。
验证操作
执行pip show jsonschema查看安装的版本号,确认版本符合预期后重新运行代码即可。
内容的提问来源于stack exchange,提问作者Bjorgum
相关产品推荐
相关产品推荐

