基于streamlit的图像检索系统前端页面制作以及python生成requirements.txt环境打包

文章目录


前言

摸鱼时刻,前段时间项目要求做一个图像检索接口,如期做完后,开始摸鱼
在摸鱼的过程想着一个问题,就是我能不能把自己做的接口直接展示在页面上,等着前端排期太慢了- -

别说,还真有特别简单的方法,可以通过streamlit这个框架(我理解为框架类似于Flask、Django等)

一、安装streamlit

Step1
安装streamlit库

pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com streamlit

Step2
命令行运行streamlit hello,如果
出现下图,回车跳过email即可,浏览器输入http://localhost:8501,(一般对自动跳转)
基于streamlit的图像检索系统前端页面制作以及python生成requirements.txt环境打包

如果这里进不去,需要排查问题,暂时能想到的是:1.安装streamlit不完全,缺少依赖包、 2.端口被占用,这个可以更换端口:streamlit run app.py --server.port xxxx就可以实现 3.*删除config.toml这个文件,它不在site-package下面,在C:\Users\你的用户\.streamlit这个文件夹里。

二、使用streamlit实现前端

这个工具可以将程序跑起来后,动态刷新页面,不需要每次更改代码就重跑代码,这个是我喜欢的地方

1.引入库

import streamlit as st

st.title("展示图片相似度检索效果!")

st.title能在页面上添加标题
基于streamlit的图像检索系统前端页面制作以及python生成requirements.txt环境打包

st.sidebar.write(
        ""
    )
uploaded_file = st.sidebar.file_uploader("tips:", type="jpg")

st.sidebar.write是一个侧边栏的控件,可以在其中写东西,或者加别的控件
st.file_uploader是文件上传控件,这里我上传了图片类型,读进来的数据需要解码

if uploaded_file is not None:
       # 将传入的文件转为Opencv格式
       file_bytes = np.asarray(bytearray(uploaded_file.read()), dtype=np.uint8)
       opencv_image = cv2.imdecode(file_bytes, 1)
       # 展示原图片
       st.image(opencv_image, width=300, channels="BGR")

下面赋上一些常用的方法工具吧,各位有需要的可以自取:
http://cw.hubwiz.com/card/c/streamlit-manual/

总结

最后赋上这篇文章的github地址:https://github.com/a281153685/streamlit_search
随便水一下啦,不想写啦

写在最后

对了对了,在做的过程中,因为需要把本地的代码部署在云端服务器上,所以,第一次(萌新证明)涉及到python安装包打包,以前clone完项目都是直接安装requirements.txt的,现在终于要自己来实践了嘛,会不会很难?不会,,,
基于streamlit的图像检索系统前端页面制作以及python生成requirements.txt环境打包
没想到吧,这还有一个大标题,虽然是转载的转自https://blog.csdn.net/qq_28949847/article/details/103506597
基于streamlit的图像检索系统前端页面制作以及python生成requirements.txt环境打包

一、python安装包写入requirements.txt

方法1:
此种方式会将环境中所有的包都打包进去,适合单虚拟环境(每个项目都处在不同的虚拟环境里,这个环境里是这个项目所需要的所有包)

把包写入到requirements.txt中

pip freeze > requirements.txt

方法2:
此类方法推荐使用,他只是总结程序中所用到的包,并不是电脑中安装的所有的包。
1.安装pipreqs

pip install pipreqs

2.命令生成
(1)先 cd 到程序所在的文件夹位置
(2)执行下面的语句,Windows下得加encoding=utf8,不然会出现编码问题。

pipreqs ./ --encoding=utf8

说明: 把 “我” 这个文件下的程序所使用的的包进行总结(包括子文件里的程序)写入到requirements.txt,requirements.txt这个文件生成在当前路径。

但是会有编码问题:

最终解决使用ISO-8859-1 编码。

二、利用requirements.txt安装

pip install -r requirements.txt

结束语

终于写完想写的东西了,写东西可太难了,不写了我要去摸鱼去了
基于streamlit的图像检索系统前端页面制作以及python生成requirements.txt环境打包

上一篇:pytest之fixture使用


下一篇:pytest之fixture之yield实现teardown