python-telegram-bot v13.11与Python3.12中urllib3兼容问题:缺失appengine模块
python-telegram-bot v13.11 与 Python 3.12 的 urllib3 兼容性问题解决
问题原因
python-telegram-bot v13.11 在 telegram/utils/request.py 第44行中依赖了 urllib3.contrib.appengine 模块,但新版 urllib3(2.0及以上)已移除该模块,因此在Python 3.12环境下运行时会触发以下报错:
ModuleNotFoundError: No module named 'urllib3.contrib.appengine'
解决方案
降级 urllib3 到兼容版本
安装低于2.0版本的urllib3,保留urllib3.contrib.appengine模块:pip install "urllib3<2.0"升级 python-telegram-bot 到适配版本
python-telegram-bot v14及以上版本已修复该依赖问题,同时支持Python 3.12,直接升级即可:pip install python-telegram-bot --upgrade手动修改源码(不推荐)
若无法升级或降级,可找到本地安装的telegram/utils/request.py文件,注释掉或移除对urllib3.contrib.appengine的导入及相关逻辑。但此方法会导致后续包更新时失效,仅作为临时方案。
内容的提问来源于stack exchange,提问作者Stefano Borzò
相关产品推荐
相关产品推荐

