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

树莓派Python Telegram Bot出现ReadTimeoutError故障排查求助

排查方向建议
  • 检查telepot及依赖库版本兼容性
    原脚本基于Python2.7的telepot,迁移到Python3.9后,旧版本telepot可能存在适配问题。执行pip3 show telepot查看当前版本,建议升级到最新兼容Python3的版本:pip3 install --upgrade telepot。同时检查urllib3、requests等依赖库版本,旧版本可能不支持Raspbian 11的SSL/TLS协议,执行pip3 install --upgrade urllib3 requests升级。

  • 直接测试Telegram API连通性
    绕过telepot,用原生requests库编写简单测试脚本,验证网络请求是否稳定:

    import requests
    BOT_TOKEN = "你的机器人Token"
    try:
        resp = requests.get(f"https://api.telegram.org/bot{BOT_TOKEN}/getMe", timeout=10)
        print(resp.json())
    except Exception as e:
        print(f"请求失败: {e}")
    

    如果该脚本同样出现超时,说明问题出在网络或系统SSL配置;如果正常,则聚焦telepot的调用逻辑问题。

  • 排查系统网络深层问题
    虽然telnet能连通443端口,但可能存在SSL/TLS版本不匹配、DNS解析延迟或网络丢包。查看系统日志/var/log/syslog或dmesg,搜索TCP、SSL相关错误。也可以尝试修改telepot的SSL配置,强制使用兼容的TLS版本(比如TLSv1.2)。

  • 调整Telegram API调用策略
    原脚本若使用长轮询(getUpdates),可尝试调整超时参数,比如设置timeout=30(Telegram API允许最大50秒),避免因超时设置不合理引发ReadTimeout。另外,考虑改用Webhook模式替代长轮询,减少持续连接带来的稳定性问题。

  • 检查系统资源与时间同步
    用htop监控脚本运行时的CPU、内存占用,排查是否因资源耗尽导致崩溃。同时确认系统时间是否准确:执行date查看时间,用systemctl status systemd-timesyncd检查NTP服务状态,时间偏移可能导致API请求异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:36:23