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

PythonAnywhere部署Telegram Bot遇OSError: [Errno 101]网络不可达求助

解决PythonAnywhere免费账户Telegram Bot重部署后的OSError: [Errno 101]问题

排查步骤

1. 确认PythonAnywhere免费账户的网络规则

免费账户仅允许访问官方白名单内的外部服务,Telegram API(api.telegram.org)在白名单中,但需注意:

  • 禁止使用自定义代理、VPN或非官方Telegram API域名
  • 不要尝试访问Telegram的P2P服务或其他非API域名

2. 验证Bot代码的核心配置

  • 检查Bot Token:确保复制的token完全正确,无多余空格、换行或字符缺失(可通过Telegram BotFather重新获取确认)
  • 检查库初始化代码:
    旧版本python-telegram-bot:
    from telegram.ext import Updater
    updater = Updater(token="YOUR_BOT_TOKEN", use_context=True)
    
    新版本python-telegram-bot(v20+):
    from telegram import Update
    from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
    application = ApplicationBuilder().token("YOUR_BOT_TOKEN").build()
    
    不要手动添加proxy_url等网络参数(免费账户不支持自定义代理)

3. 直接测试PythonAnywhere环境的网络连通性

在PythonAnywhere的Bash终端执行:

curl https://api.telegram.org/bot<你的BotToken>/getMe
  • 如果返回包含Bot信息的JSON:说明网络正常,问题出在代码或依赖
  • 如果同样报错网络不可达:直接联系PythonAnywhere支持团队,说明是免费账户的网络访问问题

4. 检查依赖安装状态

重新上传代码后,确保所有依赖已正确安装:

  • 确认requirements.txt中包含python-telegram-bot(指定版本更稳妥,比如python-telegram-bot==13.7或对应版本)
  • 在终端执行pip install --user -r requirements.txt(免费账户需加--user参数)

5. 定位错误日志的具体触发点

查看错误日志中报错的代码行:

  • 如果是Bot初始化时触发:优先检查Token、API域名配置
  • 如果是发送消息/请求时触发:检查请求参数是否合规,或是否调用了Telegram API以外的网络服务

6. 确认账户资源状态

登录PythonAnywhere Dashboard,检查是否有CPU、带宽或存储资源耗尽的警告(虽然此问题通常和资源无关,但可排除极端情况)


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:52:17