原文:
www.kdnuggets.com/2022/04/deploy-machine-learning-web-app-heroku.html
在之前的 博客文章 中,我展示了如何使用 Streamlit 库在 Python 中构建机器学习 Web 应用程序。最终产品看起来是这样的:
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯
2. 谷歌数据分析专业证书 - 提升你的数据分析能力
3. 谷歌 IT 支持专业证书 - 支持你的组织在 IT 方面
这是一个允许用户输入有关健康和生活方式信息的应用程序,并返回一个输出,预测一个人在 10 年内患心脏病的可能性。
如果你想了解更多关于模型以及应用程序如何构建的信息,可以通过这个 教程 来学习。
否则,你可以简单地访问这个 Github 仓库 并克隆它。它包含了构建和部署 Web 应用程序所需的所有代码文件。
要运行 Streamlit web 应用程序并将其部署到 Heroku,你需要安装一个非 GUI 的 Python 代码编辑器(Jupyter Notebook 不够用)。我目前使用的是 Visual Studio Code,但 PyCharm 和 Atom 也是不错的替代选择。
完成后,确保使用‘pip’命令安装这三个库—— Streamlit、Joblib 和 Pandas。
现在环境已准备好,尝试在本地运行应用程序以检查一切是否正常。
打开你的终端并输入以下代码行:
streamlit run streamlit_fhs.py
然后,打开浏览器并访问 localhost:8501
。你应该会看到一个类似这样的 Web 应用程序:
我们的文件夹目前有三个文件:
为了成功将应用部署到 Heroku,我们需要创建另外三个文件:
1. requirements.txt
首先,创建一个文本文件并命名为 requirements.txt。然后,将以下内容粘贴到文件中:
pandas==1.3.2
gunicorn==19.9.0
streamlit==1.5.1
joblib==1.1.0
sklearn==0.22
2. Procfile
接下来,你需要创建一个 Procfile。它告诉 Heroku 你的应用程序位置以及如何启动它。
要创建 Procfile,只需打开终端并导航到你刚刚克隆的文件夹。输入以下命令:
echo web: gunicorn app:app >Procfile
3. setup.sh
最后,创建一个名为 setup.sh 的文件,内容如下:
mkdir -p ~/.streamlit/
echo "\ [server]\n\
headless = true\n\
port = $PORT\n\
enableCORS = false\n\
\n\" > ~/.streamlit/config.toml
现在,你需要 创建一个免费的 Heroku 账户。
完成后,下载 Heroku CLI 并运行可执行文件。
为了确保你已成功安装 Heroku,在终端中输入以下命令:
heroku --version
如果你收到“命令未找到”的错误,这意味着某些东西出错了,Heroku 在你的设备上未正确设置。否则,你的安装成功了,你可以进入下一步。
再次打开终端并导航到你的应用程序所在的目录。
输入以下命令:
heroku create my_app
注意:你可以将“my_app”替换为你选择的任何名称。
然后,你需要初始化并将代码推送到 Git。为此,在终端中输入以下命令:
git init
git add .
git commit -m "first commit"
最后,运行这两个命令将你的代码部署到 Heroku:
heroku git:remote -a my_app
git push heroku master
注意:再次记得将 my_app 改为你的应用名称。
完成后,你会在终端上看到类似这样的输出:
上面显示的链接是你的应用所在的位置,你现在可以在线访问它。以下是我的 Web 应用的 URL:fhs-pred-app.herokuapp.com/
。
就这样!如果你正确执行了所有步骤,你现在已经部署了一个功能齐全的 Web 应用,你可以通过一个链接与其他人分享。
Natassha Selvaraj 是一位自学成才的数据科学家,热衷于写作。你可以在 LinkedIn 上与她联系。