You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装python-telegram-bot后提示No module named 'telegram.ext'

问题表现

运行Python代码时抛出如下异常:
ModuleNotFoundError: No module named 'telegram.ext'; 'telegram' is not a package

已尝试执行的安装操作均无效:

  • pip install python-telegram-bot
  • pip3 install python-telegram-bot
  • pip install telegram
  • pip3 install telegram

报错持续提示python-telegram-bot未提供telegram.ext模块,但文本编辑器的Python插件可正常识别当前环境中的telegram.ext包;切换到自行创建的虚拟环境通过命令行运行代码,问题仍然存在,目前有大量用户遇到同类问题暂无通用解决方案。

根本原因

该问题基本由三类原因导致:

  1. 命名冲突(最高发):运行代码的工作目录下存在自定义的telegram.py文件,或名为telegram的文件夹,Python导入模块时会优先读取当前工作目录下的内容,不会加载系统安装的第三方库
  2. 包冲突:同时安装了telegram和python-telegram-bot两个包,前者是和Telegram机器人开发完全无关的废弃库,会占用telegram模块命名空间,导致后者的子模块无法被正常导入
  3. 环境不匹配:pip安装依赖时对应的Python解释器,和实际运行代码调用的Python解释器不是同一个,编辑器识别的是安装了依赖的解释器环境,命令行运行时调用的是未正确安装依赖的环境
修复步骤

按顺序操作即可解决:

  1. 先彻底卸载所有存在冲突的包,执行以下命令:
pip uninstall -y telegram python-telegram-bot
pip3 uninstall -y telegram python-telegram-bot
  1. 清理本地命名冲突项:检查代码存放的工作目录,删除所有自定义命名为telegram.py的文件、以及名为telegram的自定义文件夹,这一步是绝大多数人踩坑的核心点
  2. 对齐运行环境和安装环境:
    • 在代码最开头加一行代码import sys; print(sys.executable),运行后打印出的路径就是你实际运行代码调用的Python解释器绝对路径
    • 用该解释器直接调用pip安装依赖,避免环境错位:执行<上一步打印的解释器绝对路径> -m pip install python-telegram-bot
      注意:如果你用的是旧版同步写法的机器人代码,需要指定v13版本安装,命令改为<解释器路径> -m pip install python-telegram-bot==13.7,v20及以上版本为纯异步架构,旧代码无法兼容
  3. 后续安装依赖时永远不要执行pip install telegram,该库和python-telegram-bot没有任何关联,只会引发冲突。

内容的提问来源于stack exchange,提问作者user19499885

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 16:57:17