导入httpx时报错module 'httpcore' has no attribute 'TimeoutException'如何解决
报错产生原因
这个错误是httpx与依赖库httpcore的版本不兼容导致的:
httpcore从1.0.0版本开始,对内部异常类做了重构,原本的TimeoutException属性被移除/重命名,但0.24.0及更早版本的httpx仍在调用该属性,导入时就会触发属性不存在的报错。部分场景下Python环境依赖混乱,同时存在多版本的httpx、httpcore,也会触发该类冲突问题。
可行解决方法
- 方法1:升级httpx到适配新版httpcore的版本
执行如下命令完成升级:pip install --upgrade httpx
0.25.0及以上版本的httpx已经完成了对httpcore 1.x版本的API适配,不会再调用已废弃的TimeoutException属性。 - 方法2:锁定httpcore兼容版本(适用于必须使用旧版httpx的项目)
如果你的项目依赖旧版httpx无法升级,可以将httpcore固定到仍保留TimeoutException的版本,执行命令:pip install httpcore==0.18.* - 方法3:清理冲突依赖后重新安装
如果是当前Python环境/虚拟环境依赖混乱导致的问题,可以先卸载两个库,再重新安装,pip会自动匹配兼容的版本组合:
pip uninstall -y httpx httpcore pip install httpx
内容的提问来源于stack exchange,提问作者Takaso2
相关产品推荐
相关产品推荐

