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

Python Telegram Bot Job Queue定时发消息触发RuntimeError问题咨询

报错原因

该报错是**Windows系统+Python 3.9+**环境下,python-telegram-bot v13.x 依赖的APScheduler调度器与Python标准库线程池生命周期冲突导致的典型问题,绝大多数情况是顶级代码没有加主程序入口保护触发。

修复方案

1. 优先添加主程序入口保护块

Windows系统下Python执行脚本时,若顶级代码没有if __name__ == '__main__'包裹,模块导入阶段会重复执行初始化逻辑,导致调度器线程池提前关闭。修改后的完整代码如下:

from telegram.ext import Updater

def callback_minute(context):
    context.bot.send_message(chat_id='替换为实际数字chat_id', text='每小时发送的消息内容')

if __name__ == '__main__':
    u = Updater('替换为实际bot_token', use_context=True)
    j = u.job_queue
    # 每小时发送interval参数设为3600,单位为秒
    job_minute = j.run_repeating(callback_minute, interval=3600)
    u.start_polling()
    u.idle()

2. 版本适配修复

如果添加主入口块后仍报错,是依赖包版本不兼容导致,执行以下命令降级依赖即可:

pip install python-telegram-bot==13.7 apscheduler==3.6.3

额外注意事项

  • chat_id必须填写数字格式的ID,不能直接填用户名,可通过@userinfobot获取自己的ID
  • 调试结束后不要强行终止进程,否则残留的后台连接会导致下次启动时报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:24:01