导入twint时触发ImportError:无法从aiohttp.helpers导入CeilTimeout怎么解决
报错原因
- 核心为依赖库版本不兼容:
aiohttp在3.8.0及以上版本中,移除了原本位于aiohttp.helpers路径下的CeilTimeout类,而你当前安装的aiohttp-socks版本较低,仍然依赖旧版aiohttp的该导入路径,最终触发导入报错。 - twint本身已停止维护,依赖声明未适配新版本的第三方库生态,因此即使切换全新虚拟环境,直接安装默认最新版依赖也会触发该问题。
排查解决步骤
- 先确认当前安装的依赖版本,执行命令:
pip show aiohttp aiohttp-socks
若输出的aiohttp版本≥3.8.0,且aiohttp-socks版本<0.7.0,即可确认是上述版本冲突问题。
- 二选一执行修复方案即可:
- 方案一:升级
aiohttp-socks到适配新版aiohttp的版本
pip install --upgrade aiohttp-socks
- 方案二:降级
aiohttp到包含CeilTimeout的最后一个稳定版本
pip install aiohttp==3.7.4.post0
如果修复后出现其他twint相关依赖冲突,可按照twint官方旧版依赖声明统一锁定所有依赖版本,避免其他兼容问题。
内容的提问来源于stack exchange,提问作者kitten
相关产品推荐
相关产品推荐

