一、前言
之前看我同事搭建了一个简易的网页,觉得挺有趣的,一直想学习下来着,然而机缘巧合,前阵子才知道原来是用Streamlit开发的呀,于是又开始了自己的三分钟热情了,哈哈哈。
二、Streamlit是什么
1、Streamlit的定义
Streamlit是一个开源的Python库,是 机器学习工程师专用的应用程序框架, 第一个专门针对机器学习和数据科学团队的应用开发框架 , 利用Streamlit可以快速构建机器学习应用的用户界面。
2、Streamlit的特色
(1)API简单明了,易上手:https://docs.streamlit.io/
(2)无须学习前端知识(html、css、javascript)
Streamlit 基于tornado框架,封装了大量互动组件,同时也支持大量表格、图表、数据表等对象的渲染,并且支持栅格化响应式布局。
(3)支持markdown和html文本的渲染
Streamlit的默认渲染语言就是markdown;除此以外,Streamlit也支持html文本的渲染,这意味着你也可以将任何html代码嵌入到streamlit应用里
3、什么情况适用Streamlit
开发web的可选方案:
(1)前后端都用js:vue + node.js等
(2)前端用html,后端用python:Flask、Django等
(3)前后端都用Python:streamlit
但是如果我:
(1)并不熟悉前端设计、或者没有前端艺术细胞;
(2)也不想实现太复杂的网页结构;
(3)只是想给我的python程序用极短的时间快速生成一个基于web的GUI
那么,streamlit就是一个非常好的解决方案。事实上,streamlit官网也将其主要定位于实现机器学习和数据科学的web应用的工具。当然,你也可以将其用于给自己的python脚本创建前端。
三、Streamlit安装
我的机子安装并没有那么顺利,差点就从入门到放弃了,还好坚持了一会儿最后终于安装成功了,下面简单说一下安装的艰辛之路吧。
1、直接pip命令安装
安装命令:pip install streamlit
安装后报错:AttributeError: module 'enum' has no attribute 'IntFlag'
解决思路:
This is likely caused by the package enum34. Since python 3.4 there's a standard library enum module, so you should uninstall enum34, which is no longer compatible with the enum in the standard library since enum.IntFlag was added in python 3.6.
这可能是由包Enum34引起的。因为Python3.4有一个标准库枚举模块,所以您应该卸载Enum34,因为在Python3.6中添加了Enum.Intflag,所以它不再与标准库中的枚举兼容。
解决方法:pip uninstall enum34 #卸载enum34
2、第二次pip命令安装
当我尝试pip install streamlit
时失败,并显示错误消息:
ERROR: "Could not build wheels for pyarrow which use PEP 517 and cannot be installed directly"
解决思路(网友回答如下):
我也面临同样的问题,我注意到pyarrow是Streamlight版本0.63.0中的一个要求。因此,您可以使用pip install streamlit==0.62.0
,它会很好地工作。Streamlit版本0.62.1和python版本3.8.5运行良好
解决方法:pip install streamlit==0.62.0
3、第三次pip命令安装
这次是指定了版本安装pip install streamlit==0.62.0
安装成功后,运行Streamlit hello报错:TypeError: Descriptors cannot not be created directly.
解决思路:python 依赖 protobuf 奇怪报错 TypeError: Descriptors cannot not be created directly。在网上搜索后发现似乎是最新的包编译时出了问题,开发人员已经会在更新后修复。
解决方法:在没有发布新版本之前先降级使用吧:pip install protobuf==3.19.0
4、检查是否安装成功
以上就是我艰辛的安装之路,好像还少了一次报32位错误的,算了,之前安装没有把图截下来,总之遇到问题拼命百度一下,总是会有解决方案的。言归正传,检查是否安装成功,直接在cmd输入 streamlit hello 就行,如上图会出现welcome to streamlit,会要求输入email,其实不用输 直接回车即可自动跳转到网页,如下图,这是官方默认的demo:
(1)Demo首页
(2)Plotting Demo
(3)DataFrame Demo