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

Telegram Bot异步改造遇RuntimeWarning报错求解决(新手向)

在Telegram Bot中使用异步消息处理函数

问题原因

你用的telebot默认是同步版本,直接把消息处理函数改成async def后,同步的bot.polling()无法正确执行异步函数,导致出现RuntimeWarning错误。

解决步骤(新手友好版)

  1. 升级依赖库
    确保你安装的pyTelegramBotAPI是支持异步的最新版本,打开终端执行:
pip install pytelegrambotapi --upgrade
  1. 修改为异步代码结构
    把原来的同步代码改成以下形式,核心是用异步专用的Bot类+异步事件循环运行:
import telebot
import asyncio

# 替换成异步专用的AsyncTeleBot类
bot = telebot.AsyncTeleBot("你的TOKEN")

@bot.message_handler(func=lambda newMessage: True)
async def main(newMessage):
    print(newMessage)
    # 这里可以放心使用await调用你的异步函数,比如:
    # await 你的异步函数名()

# 将polling操作放入异步函数
async def run_bot():
    await bot.polling()

# 启动异步事件循环
if __name__ == "__main__":
    asyncio.run(run_bot())

关键改动说明

  • AsyncTeleBot:库专门提供的异步Bot类,能识别并正确执行你的异步消息处理函数
  • asyncio.run():Python自带的异步工具,用来启动整个异步程序的事件循环,确保所有异步代码都能被正常执行
  • 现在你可以在main函数里自由使用await调用其他异步函数,不会再出现警告或报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 20:20:02