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

Heroku部署Reddit机器人报OSError:98 Address already inuse本地正常

错误修复方案

根因说明

OSError: [Errno 98] Address already in use 是Heroku部署场景下的常见端口冲突问题,核心原因是Heroku会为web类型进程自动分配动态端口,你的代码或部署配置存在端口抢占逻辑。

分步修复

  • 优先检查app.py代码,删除全局作用域下的app.run()调用:gunicorn作为WSGI服务器会直接加载app实例,若保留app.run()代码,会和gunicorn抢占同一个端口,直接触发报错。仅保留本地运行场景的调用逻辑即可:
# 仅本地运行时执行,部署到Heroku时gunicorn不会触发该代码块
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
  • 不要在代码中硬编码固定端口,若需要主动获取端口,通过os.getenv('PORT')读取Heroku分配的动态端口即可,不要写死为5000、8080等固定值。
  • 你当前的Procfile配置web: gunicorn app:app 是合法的,不需要额外追加host、port参数,gunicorn会自动适配Heroku的环境变量。
  • 若你的Reddit机器人仅需后台运行、不需要对外提供HTTP接口,可以直接修改Procfile配置为worker: python app.py,之后在Heroku控制台资源页关闭web进程、开启worker进程即可,无需使用gunicorn,也不会触发端口相关检测。
  • 修复完成后重新推送代码部署,可通过Heroku CLI执行heroku logs --tail实时查看运行日志,确认无报错即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:51:03