streamlit是一个非常简洁的python语言web框架,用于机器学习、数据可视化等。这里介绍在将streamlit工程部署到Heroku。系统环境:Mac电脑 + streamlit 1.3.0

1、安装Git和Heroku CLi

1.1 安装Git

sudo apt-get install git

1.2 安装Heroku Cli

    在Heroku官网下载 Heroku CLi,如图(1)所示:

图(1) 下载Heroku CLi并安装
    下载之后,一路点击默认,直到安装完成。

2、创建Heroku账号

    在Heroku官网,使用自己的google邮箱注册一个账号,比如,hello@google.com,这个邮箱地址是用于将本地web工程打包Heroku远端,填写在setup.sh配置文件里。

3、创建streamlit工程

    这里以创建calculate项目为例,进行说明。

3.1 创建文件和文件夹

## 创建项目文件夹,并git初始化本地的main分支
mkdir calculate
cd calculate
git init
git brach -m main## 创建主代码
touch app.py## 创建配置文件
touch set.up
touch Profile
touch runtime.txt
touch requirements.txt

3.2 编写主程序app.py

    app.py文件内容如下:

import streamlit as st## 两数相加
def add(a, b):return a + b## 两数相减
def sub(a, b):return a - b## 两数相乘
def mul(a, b):return a * b## 两数相除
def div(a, b):if b == 0:return 0else:return a / bdef main():st.subheader("四则运算")num1 = st.number_input('数字1')num2 = st.number_input('数字2')res = 0with st.form("加减乘除"):col1, col2, col3, col4 = st.columns(4)with col1:bAdd = st.form_submit_button("相加")if bAdd:res = add(num1, num2)with col2:bSub = st.form_submit_button("相减")if bSub:res = sub(num1, num2)with col3:bMul = st.form_submit_button("相乘")if bMul:res = mul(num1, num2)with col4:bDiv = st.form_submit_button("相除")if bDiv:res = div(num1, num2)st.write("结果为:", res)if __name__ == '__main__':main()

3.3 导出依赖包配置文件 requrements.txt

    点击Pycharm菜单栏上的[工具] ----》 同步Python的要求 --》在当前工程目录自动生成依赖包配置文件: requirements.txt,如图(2) 、图(3)所示:

图(2) 点击Pycharm菜单栏上的[工具] --> 同步Python要

图(3) 采用"强相等" 导出 requirements.txt文件

3.4 指定python的运行版本文件 runtime.txt

    runtime.txt的内容如下:

python-3.9.7

3.5 编写打包文件 setup.sh

    setup.sh的内容如下:

mkdir -p ~/.streamlit/echo "\
[general]\n\
email = \"你的google邮箱地址\"\n\
" > ~/.streamlit/credentials.tomlecho "\
[server]\n\
headless = true\n\
enableCORS=false\n\
port = $PORT\n\
" > ~/.streamlit/config.toml

3.6 编写启动文件 Procfile

    Procfile的内容如下:

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

3.7 本地测试app.py

    运行如下命令,测试app.py,测试完后再打包

streamlit run app.py

效果如下:

图(4) 本地测试工程

3.8 工程目录结构

    calculate项目的目录结构如下:

图(5) calculate项目的目录结构

4、打包工程到Heroku

    这里使用Git + Heroku CLi工具将streamlit类型的工程:calculate打包到Heroku。

4.1 登录Heroku

## 进入工程目录
cd calculate## 登录Heroku
heroku login -i## 输入注册时的邮箱和密码

4.2 保存修改到本地分支

git add .
git commit -m "init"

4.3 创建Heroku项目

创建一个Heroku项目,若没有指定名称,则Heroku自动填充。

heroku create

4.4 将本地分支推送到远程heroku的main分支

git push heroku main

4.5 设置进程个数

heroku的免费版本,默认设置1个进程;收费版本,可设置多个。

heroku ps:scale web=1

4.6 打开heroku远端项目

hero open

5、修改heroku远程项目名称

    由于使用heroku create创建的项目以字母+随机数 命名,不方便记忆。可使用 heroku apps:rename XXX 将远端项目名称进行修改,步骤如下:

## 1.打开终端,登录heroku
heroku login -i## 2.进入本地工程目录,比如myProject目录
cd myProject## 3.修改名称 (xxx是你的app的新名称,yyy是app的旧名称)
heroku apps:rename xxx --app yyy## 4.将名称修改推送到远端
git remote rm heroku
heroku git:remote -a xxx

    比如,将远端项目名称从tranquil-island-36136 改成 tocalc,命令如下:

## 1.打开终端,登录heroku
heroku login -i## 2.进入本地工程目录,此处为calculate
cd calculate## 3.修改名称
## 由于calculate这个名称已被占用,所以使用tocalc作为新名称
heroku apps:rename tocalc --app tranquil-island-36136## 4.将名称修改推送到远端
git remote rm heroku
heroku git:remote -a tocalc

部署streamlit工程到Heroku相关推荐

  1. 部署Flask App到Heroku详细步骤及遇到的问题

    0, Heroku Heroku是老牌的免费云空间,可以很好的满足我们学习/研究/实验/测试的目的,同时,他对Python的支持非常良好. 下面主要针对flask web开发这本书第17章 Flask ...

  2. 部署 JSP 工程文件

    1.进入开部署界面 2.部署:在 Project 中选择要部署的工程文件,再点 add. 启动 Tomcat 服务器 浏览 JSP 打开浏览起,在地址栏输入:http://localhost:8080 ...

  3. 在Tomcat中部署seam工程

    在Tomcat中部署seam工程 众所周知,Tomcat.Resin是servlet的容器,反应迅速,启动时间快,配置简单(Resin反应应该更迅速一些),但如果用到EJB工程的的话,它们就不能胜任了 ...

  4. tomcat如何通过配置的方式部署web工程

    Workspaces 下有很多工程文件,这个 Workspaces 是 Myeclipse 自动生成的,我们通过 Myeclipse 写的工程都在这个 Workspaces 文件夹下. 我们部署工程到 ...

  5. linux部署python web项目 详细_在linux服务器下部署python工程(爬虫)

    ---恢复内容开始--- 这两天 部署 这个 工程 ,真的是 心力交瘁惹. 如果有用到爬虫的话,python环境 先配好,如果是 python3的话 beautifulsoup 可以参见 http:/ ...

  6. eclipse--eclipse(JavaEE版本)部署Tomcat工程(转)

    介绍如何在eclipse(JavaEE版本)中部署Tomcat工程, 转自"http://www.cnblogs.com/chenjunbiao/archive/2011/12/09/228 ...

  7. 云服务器部署SpringBoot工程-瑞吉外卖项目

    Linux部署SpringBoot工程-瑞吉外卖项目 云平台:阿里云 终端软件:Tabby Terminal 部署项目项目: SpringBoot-瑞吉外卖 自己第一次从本地web项目搭建到云端部署发 ...

  8. Ubuntu 安装Yolo-FastestV2 的一般流程(5),部署ncnn工程.

    在前面,我们已经把准备工作都完成了,接下来,我们正式来部署ncnn工程. 第一,安装与编译ncnn工程. 我们打开终端,输入以下命令: git clone https://github.com/Ten ...

  9. 使用Jenkins打包和部署Maven工程步骤详解

    上节已部署jenkins: https://blog.csdn.net/weixin_39816740/article/details/104943258 并 准备好一个maven项目发布到码云 上节 ...

最新文章

  1. [C++对象模型][6]sizeof与对象内存布局
  2. Swift - 使用SwiftHTTP通过HTTPS进行网络请求,及证书的使用
  3. Thrift之Protocol源码分析
  4. java 线程 操作系统线程_线程基础:线程(1)——操作系统和线程原理
  5. Spark性能优化指南:高级篇
  6. easyuefi只能在基于uefi启动的_云计算学习体系-1.1-计算机硬件基础扩展知识BIOS/UEFI/MBR/GPT...
  7. 初入java行业,环境你可知如何配置
  8. 两年,从月入4K到40K,从来不是努力工作,而是不断跳槽
  9. winXP 下安装python3.3.2
  10. 最多只能选择两个多选框的jQuery功能实现
  11. CentOS7下安装并简单设置PostgreSQL笔记
  12. Visual Studio 2010 新建完项目编译就出错
  13. css样式基础--基本选择器
  14. 丁昊 北大计算机,北大清华17人!2018自主招生等类型入选名单公示,苏州333人!...
  15. 2021年中国外卖行业发展现状、市场竞争格局及未来发展趋势分析:美团外卖市场份额持续提升[图]
  16. 华硕服务器怎么装win7系统教程,华硕win7系统重装教程
  17. 恒指赵鑫:7.24今日恒指喊单记录与小结
  18. 2018年已经过了一半,你还记得年初时候定的小目标么——致已经逝去的2018上半年
  19. vnc远程 jetson nano 分辨率问题
  20. 天蝎项目整机柜服务器解决方案,天蝎整机柜服务器标准符合性测试已启动

热门文章

  1. C:\Program Files\Git\cmd\git.EXE ls-remote -h -t https://github.com/nhn/raphael.git
  2. BigDecimal使用divide()异常
  3. alpha hull
  4. 大数据+机器学习=天下无敌!
  5. QT+OpenGL光照
  6. 正面开战:今日头条将封禁微信、微博等账户推广
  7. 熊乃瑾自制蛋糕探望孤儿 岁末温情分享关爱
  8. font-icon各类图标的使用
  9. 救救小姐姐html5游戏在线玩,救救小姐姐安卓版
  10. 小程序(十四)后端-签到成功