如何将Streamlit应用免费部署到Heroku

前面介绍了Streamlit这数据分析和可视化的利器。 下面说说如何将你的Streamlit应用程序部署到免费的Heroku账号,这样任何人都可以访问你的应用了。

还是以前面介绍的简单程序为例:

首先创建一个文件夹比如叫做ml,然后进入该文件夹,创建程序文件stats.py,其源码为:

import streamlit as st
import pandas as pd 

st.write("""
## Download statistics

### Line chart

""")

# select DATE_FORMAT(date, '%Y-%m-%d') as d, count(id) as count from posts group by d;

dictionary = {'2020-06-25':34, '2020-06-26': 39, '2020-06-27': 40, '2020-06-28': 40, '2020-06-29': 42, '2020-06-30': 36}

series = pd.Series(dictionary)

st.line_chart(series)

st.write("""

### Bar chart

""")

st.bar_chart(series)

在当前目录下运行如下命令来安装pipreqs包,并创建依赖库的文件:

pip install pipreqs
pipreqs .

可以看到,在当前目录下生成了requirements.txt,其内容为:

streamlit==0.58.0
pandas==1.0.3

创建setup.sh:

mkdir -p ~/.streamlit/
echo "\
[general]\n\
email = \"YOUR_EMAIL_ADDRESS\"\n\
" > ~/.streamlit/credentials.toml
echo "\
[server]\n\
headless = true\n\
enableCORS=false\n\
port = $PORT\n\
" > ~/.streamlit/config.toml    

创建Procfile:

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

创建本地git库

git init
git add --all
git commit -m "init"

配置并部署到Heroku:

heroku login
heroku create
git push heroku master
heroku ps:scale web=1

按照命令行输出的URL就可以访问你的应用了。

查看Heroku日志:

heroku logs --tail

要想使用自己域名,需要先通过Heroku验证。然后运行:

heroku domains:add hivecnstats.aafeng.uk

评论