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

在Heroku部署Taipy应用遇端口绑定超时错误,寻求解决方法

解决Taipy部署到Heroku的端口绑定超时错误

问题根源

Heroku会为应用动态分配端口,并通过环境变量$PORT传递给应用。你的Taipy应用默认使用5000端口启动,未读取该环境变量,导致无法绑定Heroku要求的端口,触发"Web process failed to bind to $PORT within 60 seconds of launch"错误。同时你的Procfile写法不符合规范,多行命令无法被正确执行。

修复方案

1. 修改main.py适配动态端口

在Gui.run()方法中,读取Heroku提供的PORT环境变量,替换默认的固定端口:

import os
from taipy import Gui, Core, create_scenario

# ... 你的其他业务代码 ...

if __name__ == "__main__":
    Core().run()
    scenario = create_scenario(scenario_cfg)
    scenario_search = create_scenario(text_search_scenario_cfg)
    scenario_search_image = create_scenario(image_search_scenario_cfg)
    # 优先读取Heroku的PORT变量,本地测试时默认用5000
    port = int(os.environ.get("PORT", 5000))
    # 指定host为0.0.0.0允许外部访问,同时传入动态端口
    Gui(pages=pages).run(host="0.0.0.0", port=port)

2. 修正Procfile的执行命令

Procfile中web指令只能包含一行执行逻辑,需将环境变量写入命令和启动命令合并:

web: echo ${GOOGLE_CREDENTIALS} > /app/google-credentials.json && python main.py

注:无需在命令中添加--host=0.0.0.0,已在代码中配置host参数。

3. 重新部署应用

提交修改后的代码到Heroku远程仓库,触发重新部署:

git add .
git commit -m "Fix port binding and Procfile configuration"
git push heroku main

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:51:15