部署Streamlit项目到Streamlit Cloud过程及踩坑记录(自用)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本文主要是记录自己部署Streamlit项目到Streamlit Cloud云的过程。


一、环境文件


1.requirements.txt (必要)

requirements.txt文件作用在于在Streamlit Cloud利用其生成python环境。
注意文件拼写,是requirements.txt而不是requirement.txt

如何导出requirements.txt

方法1:pip freezen > requirements.txt 和 pip list --format=freeze >requirement.txt

pip freezen > requirements.txt导出的包可能会带有库文件的本机的位置路径。
在这里插入图片描述
pip list --format=freeze >requirement.txt 导出的包不会带有路径。

该方法会导出环境的所库包

方法2:利用piprequs库

pipreqs可以通过对项目目录的扫描,发现使用了哪些库,生成requirements.txt。

1.在某个虚拟环境下安装该库(建议专门创建一个工具类python虚拟环境,专门存放工具类库)
pip install piprequs
2.项目根目录下,使用该库
piprequs ./ 或者 piprequs ./ --encoding==utf8

2.packages.txt

Streamlit Community Cloud 构建于 Debian Linux 之上。如果有想要通过apt-get install安装到环境中的包,则需要放进packages.txt文件中。
以官方说明为例:
在这里插入图片描述mysqlclient是需要在ubuntu环境安装上面的几个包才可使用,所以如果用到mysqlclient,则要把以上内容写到packages.txt中。
推荐在packages.txt中写上的一些包:(一些与编译和图像视频相关的包)
ffmpeg
gifsicle
build-essential
python3-dev
gdal-bin
libgdal-dev

踩坑记录:

1.ImportError: libGL.so.1: cannot open shared object file: No such file or directory

在这里插入图片描述
在这里插入图片描述

原因:
这个错误通常是因为系统缺少 libGL.so.1 这个共享库,它是 OpenGL 的一部分,许多图形相关的应用程序和库都需要它
解决方法1:
在这里插入图片描述
所以在packages.txt文件中加上ffmpeg、libsm6、libxext6即可
在这里插入图片描述

解决方法2:
使用opencv_python_headless库包而不是opencv_python库包
在requirements.txt文件中
在这里插入图片描述

2.NameError: name ‘LOADER_DIR’ is not defined

在这里插入图片描述
在这里插入图片描述
解决方法:
在packages.txt中加入ffmpeg即可,或者直接在packages.txt中:
在这里插入图片描述


二、项目结构

在这里插入图片描述
requirements.txt和packages.txt是所需环境文件。app.py是streamlit入口文件。


三、项目部署

1. 把本地项目推送到自己的Github账号上

此处不过多说明,自己学习如何使用Git管理和推送项目

2.创建Streamlit Cloud账号

streamlit Cloud社区创建账号,然后绑定github账号。
推荐直接使用github账号登录
在这里插入图片描述

3.创建应用

登录之后,创建新的app
在这里插入图片描述
然后选择对应github仓库和分支,以及入口程序(我的入口程序为app.py)。然后会自动生成APP URL(也可更改为自己想要的URL)
在这里插入图片描述

点击Deploy!后就会开始部署项目。
在这里插入图片描述
可点击右下角的Manage app
在这里插入图片描述
展开,看到部署过程,一些错误信息也会展示出来。
在这里插入图片描述

总结

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值