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

PythonAnywhere部署Telegram Bot POST接口不工作问题咨询

解答

1. 是否必须使用付费账户

不需要。PythonAnywhere免费账户完全可以正常运行Telegram Bot Webhook服务,仅需遵守免费账户的限制规则:

  • 仅可使用平台分配的*.pythonanywhere.com二级域名,你当前使用的https://logrt.pythonanywhere.com符合要求,且自带HTTPS,满足Telegram Webhook的证书要求
  • 免费账户有每日CPU运行时长、请求次数配额,个人自用Bot的流量完全不会触达上限,仅高流量公开Bot需要升级付费方案
  • 注意:所有账户(含付费)访问Telegram API都必须走平台指定的http://proxy.server:3128代理,你代码中的代理配置思路正确,但旧教程的适配写法存在兼容问题

2. 无错误输出是否为依赖安装问题

存在极大的依赖、配置适配问题,按以下优先级排查:

  • 首先修复依赖兼容问题:telepot库已停止维护超过5年,和urllib3 2.0+版本存在静默兼容问题,代理请求会直接失败且不抛出可见错误。执行pip install urllib3==1.26.18将urllib3降级到1.26.x版本即可解决该问题。
  • 检查Web应用运行环境一致性:确认PythonAnywhere Web面板中配置的Python版本、虚拟环境路径,和你安装flask/telepot/urllib3的环境完全一致,新用户常出现依赖装在全局Python、但Web应用跑在独立虚拟环境的情况,会导致库导入失败。
  • 移除全局位置的bot.setWebhook()调用:你当前代码在Flask应用初始化阶段就会向外发送请求配置Webhook,免费账户应用启动阶段的出站请求可能被拦截,直接导致整个Flask应用加载失败,POST路由自然无法响应。正确做法是将Webhook配置逻辑单独写成一次性脚本,手动执行一次完成配置即可,不要放在Flask服务的运行代码中。
  • 直接查看错误日志定位问题:PythonAnywhere的Web应用报错不会打印在你运行脚本的终端,所有加载错误、请求处理错误都会存在对应站点的错误日志中,路径为/var/log/logrt.pythonanywhere.com.error.log,直接查看日志即可拿到明确的错误信息。
  • 额外检查:不要在Flask入口文件中写app.run()逻辑,PythonAnywhere通过WSGI进程直接加载app对象,手动调用run方法会触发端口冲突,导致服务无法启动。

3. 最新部署注意事项

目前已经不推荐参考2018年基于telepot的旧教程,部署时注意以下要点即可:

  • 优先选择仍在维护的Telegram Bot库,比如官方维护的python-telegram-bot v20+版本,或者轻量的pyTelegramBotAPI,这类库已经适配新版Python和依赖,不会出现旧库的兼容问题。
  • Webhook配置完成后,可调用Telegram Bot API的getWebhookInfo接口检查状态,只要返回结果中pending_update_count为0、last_error_message字段为空,就说明Telegram侧的Webhook配置完全正常。
  • 每次修改代码后,需要到PythonAnywhere的Web面板点击「Reload」按钮重启Web应用,修改才会生效,很多新用户改完代码不重启,会一直运行旧版本代码。

内容的提问来源于stack exchange,提问作者David Ricardo Menacho Vadillo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 11:01:40