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

Streamlit应用部署Heroku后崩溃求助(本地运行正常)

解决Streamlit部署到Heroku时的Toml解析错误

从你提供的日志里能看到核心问题:toml.decoder.TomlDecodeError: Key name found without value. Reached end of line.,这说明Streamlit的配置文件config.toml存在语法错误,导致应用启动时解析失败。

问题根源出在你的setup.sh生成配置文件的方式上——原来的echo写法在bash环境下,可能生成了不符合Toml规范的内容,比如多余的空行或者未正确处理的转义字符,触发了解析报错。

修复方案

把你的setup.sh文件替换成下面的内容:

mkdir -p ~/.streamlit/
printf "[server]\nport = %d\nenableCORS = false\nheadless = true\n" "$PORT" > ~/.streamlit/config.toml

为什么这个方案有效?

  • printf比echo更可靠,能精准控制输出格式,避免转义字符处理带来的异常。
  • 它会正确将Heroku自动设置的$PORT环境变量替换为数值,生成完全符合Toml语法的配置项。
  • 生成的config.toml内容干净,没有多余空行或无效字符,Streamlit可以顺利完成初始化。

额外确认项

  1. 确保你的Procfile内容正确无误:
    web: sh setup.sh && streamlit run echonet.py
    
  2. 推送修改后的setup.sh到Heroku仓库,触发重新构建部署。

这样就能解决应用启动崩溃的问题了,配置文件的语法错误被修复后,Streamlit可以正常在Heroku上运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 15:22:27