原文:
www.kdnuggets.com/2020/10/deploying-streamlit-apps-streamlit-sharing.html
评论
由Tyler Richards撰写,Facebook 数据科学家
图片由作者提供
在过去的几周里,我一直在尝试一个新的 Streamlit 功能,叫做 Streamlit 分享,这使得部署自定义应用变得非常简单。我将首先介绍一些背景知识,如果你想开始使用 Streamlit 分享,你可以在这里找到相关文档。
简单来说,Streamlit 是一个框架,允许你快速而自信地将 Python 脚本转换为 web 应用,对于需要快速分享模型或互动分析的团队数据科学家,或者想向世界展示个人项目的数据科学家来说,它是一个不可思议的工具。如果你想试试,可以查看这个Streamlit 入门教程!
我在过去的约 6 个月里一直在使用 Streamlit,它真的非常有用。之前,如果我知道在项目结束时需要制作一个 web 应用,我总是选择切换到 R,以便使用出色的 R shiny 框架,尽管我在 Python 编程方面比 R 要好得多。使用 Django 或 Flask 开发总是会有很多摩擦,使得个人项目很少值得这样做,而在工作中也总是花费太多时间。但在使用了 Streamlit 后,我现在不仅有了选择,而且发现自己更喜欢 Python+Streamlit 而不是 R+shiny。
这让我想起几个月前的事。我开始了一个数据科学项目,专注于使用来自Goodreads应用的数据分析阅读习惯。我决定尝试 Streamlit,它将一个多天的 Django/Flask 应用在本地运行的过程缩短到了大约半小时的本地 Streamlit 使用。它确实像将你的分析放入脚本中,并在你想在应用中放置图表、小部件或文本解释时调用 Streamlit 函数一样简单。
然而,Streamlit 上最烦人的过程是部署和管理过程。我跟随的教程很简单,而且不会花太多时间,但还是相当繁琐。它需要启动一个 ec2 实例,配置 SSH,使用 tmux,并在每次想要更改 web 应用时都回到终端。虽然可以完成,但很烦人。
图片由作者提供
几周前,Streamlit 看到我的 Goodreads 应用,并问我是否想测试他们的 Streamlit 分享测试版,该版旨在消除上述提到的摩擦。我显然答应了。
我只需做的是:
-
将我的应用推送到 Github 仓库
-
添加一个列出我使用的所有 Python 库的 requirements.txt 文件
-
通过仓库链接将 Streamlit 指向我的应用
-
点击部署
真的如此简单就能搞定。我预留了几个小时来解决这个问题,因为我预计会出现各种错误(毕竟还在测试版!),但我只花了不到 10 分钟就使其运行起来了。
我目前有三个应用在运行,一个是测试应用,第二个是前面提到的 Goodreads 图书推荐应用,第三个是我创建的 互动分析,从构思到功能齐全并部署的网页应用大约用了一个半小时。
转向 Streamlit 分享还为我节省了每月约 $5 的 AWS 账单,我很乐意为这项功能支付这个费用,仅仅是为了节省部署时间。
图片由作者提供
如果我想尝试一个新的应用程序,我只需点击新的应用程序按钮,将其指向我的仓库,它们会处理所有其他事情。
图片由作者提供
如果你的 Streamlit 应用使用了其他包,请确保在你的仓库中包含一个 requirements.txt 文件——否则在部署时会立即出现错误。你可以使用类似 pip freeze 的工具来获取要求,但这会列出环境中的所有包,包括你当前项目中未使用的包。这会减慢你的应用部署速度!所以我建议使用类似 pipreqs 的工具来只保留你的应用核心要求。
pip install pipreqs
pipreqs /home/project/location
如果你有 apt-get 需求,请将它们添加到 packages.txt -
中,每行一个包。
总结一下,Streamlit 分享为我节省了开发时间和托管费用(感谢让这一切成为可能的风险投资基金),使我的个人项目更加互动和美观,并消除了快速部署模型或分析的头痛问题。难怪我成为了 Streamlit 的粉丝。
想查看更多内容吗?你可以在 Twitter、Substack 或 我的作品集网站 找到我。
快乐的 Streamlit!
简历:Tyler Richards 是 Facebook 的数据科学家。
原文。转载时已获许可。
相关:
-
12 小时机器学习挑战:使用 Streamlit 和 DevOps 工具构建并部署应用程序
-
构建一个使用 TensorFlow 和 Streamlit 生成逼真面孔的应用程序
-
机器学习模型部署
1. 谷歌网络安全证书 - 快速进入网络安全职业道路。
2. 谷歌数据分析专业证书 - 提升你的数据分析能力
3. 谷歌 IT 支持专业证书 - 支持你的组织进行 IT 管理