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

开发Telegram Bot遇报错:‘PhotoSize’ object has no attribute ‘big_file_id’求助

解决Telegram Bot中‘PhotoSize’ object has no attribute ‘big_file_id’错误

核心原因

你参考的教程大概率基于旧版Telegram Bot开发库(比如python-telegram-bot v13及更早版本),而新版库(v14+)里PhotoSize对象已移除big_file_id属性,改用file_id作为文件标识。调整图片分辨率无效,是因为问题和图片本身无关,完全是库版本的属性变更导致的。

具体修复方案

  • 检查并适配库版本:
    1. 运行pip show python-telegram-bot查看当前版本。如果是v14及以上,直接把代码里的big_file_id替换为file_id即可。
    2. 若必须和教程代码完全兼容,可降级库到教程对应的版本,比如执行pip install python-telegram-bot==13.7(版本号根据教程实际使用的调整)。
  • 发送带文字图片的正确写法(新版库):
    如果你是从用户发送的图片中获取文件标识,取最高分辨率图片的file_id:
    # 假设photo是获取到的图片列表
    target_photo_id = photo[-1].file_id
    await context.bot.send_photo(
        chat_id=update.effective_chat.id,
        photo=target_photo_id,
        caption="这里是图片的文字说明"
    )
    
    如果你是上传本地图片或使用网络图片,无需提前获取file_id,直接传入路径或URL:
    # 本地图片
    await context.bot.send_photo(
        chat_id=update.effective_chat.id,
        photo=open("your_image.jpg", "rb"),
        caption="图片文字"
    )
    # 网络图片URL
    await context.bot.send_photo(
        chat_id=update.effective_chat.id,
        photo="https://example.com/your_image.jpg",
        caption="图片文字"
    )
    

内容的提问来源于stack exchange,提问作者Тоша Кравченко

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 16:45:54