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

运行TeleBot机器人代码时出现AttributeError:'TeleBot'对象不存在'message_handler'属性的技术求助

问题排查与解决方案

这个问题我太熟了!之前帮好几个朋友排查过,核心原因就是python-telegram-bot库的版本不兼容,咱们分两种情况来解决:

错误原因

你写的代码是针对python-telegram-bot v13.x及更早版本的写法,但你当前安装的大概率是v20.x+的新版本——这个版本对API做了彻底重构,TeleBot类已经移除了message_handler装饰器,所以才会报这个属性不存在的错误。

解决方案

方案1:降级到兼容的旧版本(不用改代码)

如果你不想修改现有代码,直接把库降级到和代码匹配的版本就行:

  1. 先卸载当前版本:
pip uninstall python-telegram-bot -y
  1. 安装指定的稳定旧版本(比如v13.7,完全兼容你的代码):
pip install python-telegram-bot==13.7

提示:如果你的环境用的是pip3,就把命令里的pip换成pip3。

方案2:升级代码适配新版本(推荐长期维护)

新版本的python-telegram-bot采用异步架构,性能更好,更适合长期维护。改写后的代码如下:

#!/usr/bin/python
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters, ContextTypes

API_TOKEN = 'your_private_token'

# 处理/start和/help命令
async def send_welcome(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("""\
Hi there, I am EchoBot. I am here to echo your kind words back to you. Just say anything nice and I'll say the exact same thing to you!\
""")

# 处理所有普通文本消息(排除命令)
async def echo_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text(update.message.text)

if __name__ == '__main__':
    # 创建应用实例
    application = ApplicationBuilder().token(API_TOKEN).build()
    
    # 注册命令处理器和文本消息处理器
    start_handler = CommandHandler(['help', 'start'], send_welcome)
    echo_handler = MessageHandler(filters.TEXT & (~filters.COMMAND), echo_message)
    
    application.add_handler(start_handler)
    application.add_handler(echo_handler)
    
    # 启动机器人
    application.run_polling()

几个关键变化:

  • 用ApplicationBuilder替代原来的TeleBot创建机器人实例
  • 所有处理函数必须是异步函数(添加async关键字),回复消息要用await
  • 用CommandHandler和MessageHandler显式注册处理逻辑,替代原来的装饰器
  • 最后用application.run_polling()启动服务

额外检查

你可以先查一下当前安装的库版本,确认问题:

pip show python-telegram-bot

如果版本号是20.x及以上,就完全对应上面的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 12:32:29