Streamlit Python 应用程序成功部署到 Heroku,但出现应用程序错误

Posted

技术标签:

【中文标题】Streamlit Python 应用程序成功部署到 Heroku,但出现应用程序错误【英文标题】:Streamlit Python app deployed successfully to Heroku, but I get an application error 【发布时间】:2021-06-29 15:05:23 【问题描述】:

所以我有一个 Streamlit Python 应用程序,我想在 heroku 上部署,部署成功,但是当我打开应用程序时,它给了我一个应用程序错误

对于初学者来说,这是我的需求文件:

wordcloud==1.8.1
xlrd<2.0
pandas<1.2.3
numpy<1.20.1
streamlit==0.79.0
Pillow==8.2.0

这是我的 Procfile 文件:

web: sh setup.sh && streamlit run suite.py

我也做了设置文件,我按照这个视频的每一步:https://youtu.be/nJHrSvYxzjE 当我执行此命令时:

heroku logs --tail

我明白了:

2021-04-02T19:26:55.000000+00:00 app[api]: Build started by user 
2021-04-02T19:27:52.901079+00:00 app[api]: Release v5 created by user 
2021-04-02T19:27:52.901079+00:00 app[api]: Deploy 7ca73902 by user 
2021-04-02T19:28:18.000000+00:00 app[api]: Build succeeded
2021-04-02T19:28:35.572192+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=wordcloudpython.herokuapp.com r
equest_id=28e8c410-53ba-42a2-86ed-dfac2162d53f fwd="160.179.71.151" dyno= connect= service= status=503 bytes= protocol=https

这是我第一次使用 heroku,我对它还很陌生。

【问题讨论】:

这能回答你的问题吗? H14 error in heroku - "no web processes running" 【参考方案1】:

您的需求文件命名正确吗? 你能分享一下你的 setup.sh 文件的内容吗?

如果所有名称都正确,则没有理由不工作。

【讨论】:

这是我的设置文件内容 mkdir -p ~/.streamlit/echo "\ [server]\n\ headless = true\n\ port = $PORT\n\ enableCORS = false\n\ \n\ " > ~/.streamlit/config.toml 我有完全相同的 heroku streamlit 应用程序工作。请检查您的文件是否正确命名。如果是这样,我没有额外的 cmets。参见示例:i.imgur.com/bqHUSi4.png【参考方案2】:
    这听起来可能一样,但大多数时候错误是因为不包括 requirements.txt 文件中的所有包。

这件事最近发生在我身上:我需要使用一些需要我安装 Scipy 的地块。我什至不必导入 scipy,我只需将其作为依赖项安装即可所以我没有将它包含在我的需求文件中,它破坏了部署。因此,我强烈建议再次仔细检查此类情况。

    Heroku 的另一种替代方法是使用 Streamlit 共享 部署您的应用程序。了解更多信息here。它非常易于使用,并且不需要您安装任何东西。您需要做的就是在源代码所在的位置提供您的 github 存储库链接/名称。

PS:注册后,您需要等待几个小时才能访问 Streamlit 共享,并留意您的垃圾邮件文件夹以防万一。

【讨论】:

【参考方案3】:

H14 – 没有运行网络测功机 HTTP 503 表示“服务当前不可用”。请注意,Heroku 路由器错误页面可以自定义。这些仅适用于应用程序不响应请求的错误,例如503. 解决方案:使用 heroku ps:scale 命令启动应用的 Web 服务器。

你可以试试这个命令来强制 Heroku 启动一个 web dyno

$ heroku ps:scale web=1

【讨论】:

以上是关于Streamlit Python 应用程序成功部署到 Heroku,但出现应用程序错误的主要内容,如果未能解决你的问题,请参考以下文章

Streamlit 应用程序可以在本地运行,但不能在 Heroku 上运行

部署streamlit工程到Heroku

部署streamlit工程到Heroku

Windows 7 64 位上的 streamlit 安装错误

[GCP][App Engine] Streamlit Web 应用部署 - 容器崩溃

如何在 App Engine (GCP) 上部署 Streamlit 应用程序?