在Render.com部署python-telegram-bot遇Errno 13权限拒绝求助
解决Render部署python-telegram-bot v20.0时的Errno 13权限拒绝问题
核心问题:你用了特权端口80和本地回环地址127.0.0.1,不符合Render的运行环境要求
- 低于1024的端口属于系统特权端口,Render的运行环境没有root权限,普通用户无法绑定这类端口,直接用80会触发权限拒绝
- 127.0.0.1只能让服务在容器内部访问,Render需要服务监听
0.0.0.0才能接收外部请求
修改后的代码示例:
import os from telegram.ext import Application, CallbackQueryHandler application = Application.builder().token(BOT_API_KEY).build() application.add_handler(CallbackQueryHandler(yes, pattern='^yes')) application.add_handler(CallbackQueryHandler(no, pattern='^no')) application.add_handler(CallbackQueryHandler(cancel, pattern='cancel')) # 使用Render提供的PORT环境变量,默认 fallback到5000 port = int(os.getenv("PORT", 5000)) application.run_webhook( listen='0.0.0.0', port=port, url_path='', webhook_url=WEBHOOK_URL, )
- 额外注意:确保在Render的环境变量中正确配置了
BOT_API_KEY和WEBHOOK_URL,部署钩子的路径要和代码中的url_path保持一致(这里你设为空,所以钩子路径直接指向根地址即可)
内容的提问来源于stack exchange,提问作者ixxsth
相关产品推荐
相关产品推荐

