基于Streamlit框架快速创建和分享自定义的交互式Web应用

【Python】Streamlit:为数据科学与机器学习打造的简易应用框架 Streamlit 是一个开源的 Python 库,专为数据科学家和机器学习开发者设计,旨在快速构建数据应用。通过简单的 Python 脚本,开发者无需掌握前端技术,即可将数据分析和模型结果转化为直观、交互式的 Web 应用。其简洁的 API 设计使得开发过程快速且高效,是展示数据分析、构建仪表盘、分享机器学习模型的理想选择。 阅读详情

基于Streamlit框架快速创建和分享自定义的交互式Web应用

概述

Streamlit 是一个强大的 Python 库,用于快速构建数据科学和机器学习 Web 应用。结合 PyCharm 这一优秀的 Python IDE,可以极大地提升开发效率和调试体验。本文将详细介绍在 Windows 10/11 系统下,使用 PyCharm Community Edition 2024 配置、运行和调试 Streamlit 1.57.0 应用的完整流程。

核心技术架构

┌────────────────┐    ┌────────────────┐    ┌────────────────┐
│ Python脚本     │ -> │ Streamlit运行时 │ -> │ 交互式Web应用  │
│(数据分析/模型)  │    │  (Python/JS)   │    │  (浏览器)      │
└────────────────┘    └────────────────┘    └────────────────┘
         ↑                     ↑                     ↑
         │                     │                     │
┌────────────────┐    ┌────────────────┐    ┌────────────────┐
│ 数据源         │    │ 组件库         │    │ 用户交互       │
│(文件/数据库/API)│    │ (UI元素)       │    │ (输入/操作)    │
└────────────────┘    └────────────────┘    └────────────────┘

开发环境准备

系统与软件版本

  • 操作系统: Windows 10 或 Windows 11
  • IDE: PyCharm Community Edition 2024 (或其他版本)
  • Streamlit 版本: 1.57.0 (或其他版本)
  • Python: 建议使用 Python 3.8 及以上版本

Streamlit 安装方式

方式一:全局安装(简单快捷)

直接在系统 Python 环境中安装 Streamlit:

# 基础安装命令
pip install streamlit

# 使用国内阿里云镜像加速安装(推荐)
pip install streamlit -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

# 配置 pip 永久使用阿里云镜像
pip config set global.index-url http://mirrors.aliyun.com/pypi/simple

安装验证:

streamlit --version
# 应输出类似:streamlit, version 1.57.0

启动示例应用:

streamlit run app.py --server.port 8501

方式二:虚拟环境安装(推荐,项目隔离)

为每个 Streamlit 项目创建独立的虚拟环境,避免依赖冲突。

# 1. 创建虚拟环境(将 your_env_name 替换为你的环境名)
python -m venv your_env_name

# 2. 激活虚拟环境
# Windows PowerShell 或 CMD:
.\your_env_name\Scripts\activate
# 激活成功后,命令行前面会出现 (your_env_name) 的提示

# 3. 在虚拟环境中安装 Streamlit
pip install streamlit

# 4. 验证安装并运行示例
streamlit hello

在这里插入图片描述

在 PyCharm 中配置项目

1. 创建新项目

  1. 打开 PyCharm,选择 File → New Project
  2. 指定项目位置和名称
  3. 在 Python Interpreter 设置中:
    • 如果使用方式一(全局环境),选择系统已有的 Python 解释器
    • 如果使用方式二(虚拟环境),选择 Existing interpreter,然后浏览到虚拟环境目录下的 python.exe(例如:your_env_name\Scripts\python.exe)

2. 安装依赖

在 PyCharm 的终端(Terminal)中,确保已激活正确的环境,然后运行安装命令:

# 如果尚未安装 streamlit
pip install streamlit

# 安装其他可能需要的库,如 pandas, numpy, matplotlib 等
pip install pandas numpy matplotlib

或者通过 PyCharm 的图形界面安装:

  1. File → Settings → Project: [你的项目名] → Python Interpreter
  2. 点击 + 按钮
  3. 搜索 streamlit 并安装

创建第一个 Streamlit 应用

在项目根目录下创建 app.py 文件,输入以下基础代码:

import streamlit as st
import pandas as pd
import numpy as np

st.set_page_config(
    page_title="我的第一个 Streamlit 应用",
    page_icon="🚀",
    layout="wide"
)

# 应用标题
st.title("🚀 欢迎使用 Streamlit!")
st.subheader("在 PyCharm 中开发与调试")

# 侧边栏
with st.sidebar:
    st.header("控制面板")
    user_name = st.text_input("请输入您的姓名", "开发者")
    slider_value = st.slider("选择一个数值", 0, 100, 50)

# 主内容区
st.write(f"你好,**{user_name}**!")
st.write(f"你选择的数值是:**{slider_value}**")

# 数据展示示例
df = pd.DataFrame({
    '第一列': np.random.randn(10),
    '第二列': np.random.randn(10),
    '第三列': np.random.randn(10)
})

st.write("### 随机数据表格")
st.dataframe(df)

# 图表示例
st.write("### 折线图示例")
chart_data = pd.DataFrame(np.random.randn(20, 3), columns=['A', 'B', 'C'])
st.line_chart(chart_data)

# 按钮交互
if st.button("点击这里"):
    st.balloons()
    st.success("按钮被点击了!")

# 显示代码
with st.expander("查看应用源代码"):
    st.code(__file__)

运行 Streamlit 应用

方法一:通过 PyCharm 终端运行

  1. 打开 PyCharm 底部的 Terminal 标签页
  2. 确保已激活正确的 Python 环境(虚拟环境或全局环境)
  3. 运行以下命令:
streamlit run app.py

默认情况下,Streamlit 会在 http://localhost:8501 启动服务。

方法二:自定义运行配置(推荐)

创建 PyCharm 运行配置,方便一键启动:

  1. Run → Edit Configurations
  2. 点击 + 按钮,选择 Python
  3. 配置如下:
    • Script path: 浏览选择你的 app.py 文件
    • Parameters: run app.py
    • Python interpreter: 选择项目对应的解释器
    • Working directory: 选择项目根目录
  4. 点击 OK 保存配置
  5. 现在可以通过点击 PyCharm 工具栏的绿色运行按钮 ▶️ 启动应用

自定义端口:
如果需要在特定端口运行(如 8501),可以在 Parameters 中指定:

run app.py --server.port 8501

调试 Streamlit 应用

1. 设置断点

在 PyCharm 编辑器中,点击代码行号左侧的灰色区域,设置断点(红色圆点)。

2. 以调试模式启动

方法 A:使用运行配置

  1. 确保已按照上述步骤创建了运行配置
  2. 点击运行按钮旁边的 Debug 按钮(绿色虫子图标)

方法 B:直接调试

  1. 在 app.py 文件中右键
  2. 选择 Debug ‘app’

3. 调试流程

  1. Streamlit 应用会在调试模式下启动
  2. 当代码执行到断点时,程序会暂停
  3. 在 PyCharm 的调试面板中,你可以:
    • 查看变量值
    • 单步执行(Step Over/Into)
    • 查看调用栈
    • 评估表达式
  4. 继续执行或停止调试

4. 热重载与调试

Streamlit 支持热重载(Hot Reload),当你修改代码并保存后,应用会自动重新加载。在调试模式下:

  1. 修改代码后保存
  2. Streamlit 检测到文件变化,自动重启
  3. 新的断点会生效
  4. 注意:某些状态(如会话状态)可能会在重载时重置

常见问题与解决方案

1. 端口被占用

# 错误信息:Address already in use
# 解决方案:指定其他端口
streamlit run app.py --server.port 8502

2. 浏览器未自动打开

# 添加 --server.headless true 禁用自动打开浏览器
streamlit run app.py --server.headless true
# 然后手动访问 http://localhost:8501

3. 调试时断点不生效

  • 确保以 Debug 模式运行,而不是普通运行模式
  • 检查 PyCharm 的调试器配置是否正确
  • 确保代码文件已保存

4. 虚拟环境激活问题

在 PyCharm 中,确保:

  1. File → Settings → Project → Python Interpreter 选择了正确的虚拟环境
  2. 终端中显示虚拟环境名称(如 (venv))

高级配置

1. 自定义主题

在项目根目录创建 .streamlit/config.toml 文件:

[theme]
primaryColor = "#FF4B4B"
backgroundColor = "#FFFFFF"
secondaryBackgroundColor = "#F0F2F6"
textColor = "#262730"
font = "sans serif"

[server]
port = 8501
enableCORS = false
enableXsrfProtection = true

2. 环境变量配置

在 PyCharm 运行配置中设置环境变量:

  1. Run → Edit Configurations
  2. 选择你的 Streamlit 运行配置
  3. 在 Environment variables 中添加,例如:
    STREAMLIT_SERVER_PORT=8501
    STREAMLIT_THEME_BASE=light
    

3. 使用 requirements.txt 管理依赖

# 生成 requirements.txt
pip freeze > requirements.txt

# 从 requirements.txt 安装
pip install -r requirements.txt

总结

通过以上步骤,你可以在 PyCharm 中高效地开发、运行和调试 Streamlit 应用。关键要点:

  1. 环境隔离:推荐使用虚拟环境,避免依赖冲突
  2. 运行配置:在 PyCharm 中创建运行配置,方便一键启动
  3. 调试技巧:合理设置断点,利用 PyCharm 强大的调试功能
  4. 热重载:利用 Streamlit 的热重载特性快速迭代开发

现在,你可以开始构建功能丰富的 Streamlit 应用了!如有问题,请参考 Streamlit 官方文档 或 PyCharm 帮助文档。


Streamlit详细介绍:适合数据科学专业快速打造交互式Python应用--终极指南 Streamlit是一个开源的Python库,专门为机器学习和数据科学项目设计,用于快速创建和共享美观、自定义的Web应用。它由前Google工程师Adrien Treuille、Thiago Teixeira和Amanda Kelly于2018年创建,并于2019年正式发布。Streamlit的核心特点纯Python开发:无需前端知识(HTML/CSS/JavaScript),只需Python即可构建Web应用极简API:提供简单直观的函数调用,几行代码就能创建交互式组件实时更新。 阅读详情

相关推荐

【python3】Streamlit快速构建前端页面

摘要: Streamlit是一款专为数据开发者设计的开源工具,能够快速将Python脚本转换为交互式Web应用,无需前端知识。其核心优势包括简洁易用、实时预览、功能丰富、免费开源和轻松分享。通过简单的安装步骤(Python 3.8+,pip安装Streamlit),开发者可以快速创建交互式应用,如数值平方计算器。Streamlit提供丰富的组件库,包括文本与标题、数据展示、交互输入和布局组件,支持多页面应用开发,通过文件结构自动生成导航菜单,并利用st.session_state实现页面间数据共享。适用于数

言之。 1万+

3步教您在pycharm中搭建Streamlit库

简单搭建streamlit

m0_51581045的博客 4728

机器学习-19-基于交互式web应用框架streamlit和gradio转化数据和机器学习模型

将数据和机器学习模型转变为功能性的Web应用程序

qq_20466211的博客 2847

streamlit使用pycharm调试

streamlit pycharm调试

weixin_41496173的博客 7159

Streamlit库开发python交互式Web应用程序

Streamlit是一个出色的工具,用于快速创建基于数据的Web应用程序和仪表板的原型,广泛用于数据科学和机器学习社区,用于创建交互式数据项目。

JustinMars的博客 935

Streamlit快速搭建交互式数据应用

Streamlit 是一个用于创建数据应用的开源Python库,其独特之处在于它让数据科学家能够快速地将他们的脚本转变为具有交互式UI的web应用程序。对于没有前端开发经验的IT专业人士而言,Streamlit提供了一个简单、直观的方法来展示数据分析和机器学习的结果。Streamlit内置了许多基础图表组件,如条形图、折线图、散点图等。这些图表可以使用简单的函数调用来生成,并且支持不同的数据源,包括Pandas的DataFrame和NumPy数组。

weixin_42607969的博客 1161

PyCharm无法调试Streamlit的问题

使用 PyCharm 调试 Streamlit 应用的指南及疑难杂症解决方案 概述 本文详细介绍了如何在 PyCharm 中配置和调试 Streamlit 应用,并针对常见的调试问题提供了解决方案。

weixin_39919140的博客 1673

构建交互式Web应用程序:Streamlit实战指南

Streamlit是一个用于创建和分享数据应用的Python库。它允许开发者通过编写简单易懂的Python脚本来快速创建界面,无需进行复杂的前端开发。Streamlit特别适合数据科学家和分析师,他们可以利用它将自己的数据分析成果转化为互动式的数据应用。在Streamlit中,自定义组件的创建通常涉及到前端技术,尤其是HTML、CSS和JavaScript。为了将自定义组件集成到Streamlit应用中,我们需要使用Streamlit的components模块。

weixin_35899324的博客 1239

Python|streamlit 在 PyCharm 的启动方式

【代码】Python|streamlit 在 PyCharm 的启动方式。

长行 3133

streamlit:在Streamlit中开发应用程序

streamlit:在Streamlit中开发应用程序

告别点不亮!STM32F103驱动HT1621段码屏的常见坑点与调试心得

本文详细解析了STM32F103驱动HT1621段码屏的五大常见问题及解决方案,包括硬件连接、时序控制、RAM地址映射等关键难点。通过实测数据和代码示例,帮助开发者快速排查显示异常问题,提升驱动开发效率。特别针对HT1621与STM32F103的兼容性问题提供了专业调试建议。

weixin_30925435的博客 379

使用pycharm 开发streamlit的项目,怎么启动项目,进行debug调试

要在 PyCharm 中调试并启动你的Streamlit。

keyboard专栏 5040

OrangePi Kunpeng Pro 安装 ROS2 + Gazebo

OrangePi Kunpeng Pro 的优点很明显,内置openEuler,配备PD电源,做到开箱即用;板子设计也不错,风扇噪音不大,散热良好,昇腾芯片又确保小板子的性能,接口丰富是这类板子共同的优点,也很好的继承了下来,甚至还可以外接固态,可靠性大大提升。使用起来,哪怕不用openEuler的话,也可以很方便的刷Ubuntu来实现一些需要依赖的开发工作,这次没有跑AI模型,所以对算力的优势还没有很明显的感受,下次可以试一下yolo跑跑看。

Arcan 1824

【Python编程】Python交互式应用框架巅峰对决 —— Streamlit vs Gradio

Streamlit 和 Gradio 都是非常受欢迎的 Python 交互式应用框架, 但在构建 Python 交互式 Web 应用时该如何选择?Gradio 专注于为机器学习模型与数据科学应用打造交互界面。其核心优势在于能用极简代码快速创建用户友好型 AI 演示系统,因此深受 ML 研究者及从业者青睐。Streamlit 是一款开源 Python 库,旨在帮助开发者快速构建交互式数据驱动型 Web 应用。它以极简主义设计为核心,仅需数行代码即可搭建功能完整的仪表盘。

木亦汐丫 2606

Vue3实战:从零构建ElementPlus后台管理系统全流程

本文详细介绍了从零开始使用Vue3和ElementPlus构建后台管理系统的全流程。内容涵盖环境准备、项目初始化、Vite配置、SCSS样式体系搭建、ElementPlus组件库引入与配置,以及封装可复用的SvgIcon组件进行图标管理,旨在帮助开发者快速搭建现代化、可维护的中后台应用。

weixin_29011239的博客 160

三菱PLC通信库大比拼:手把手教你用C#实现最高效的McProtocol数据读写

本文深入比较了三菱PLC通信库的性能,重点介绍了如何使用C#高效实现McProtocol数据读写。通过实测数据对比HslCommunication、McProtocol-next和自定义方案的优劣,提供优化技巧和代码示例,帮助开发者在工业自动化场景中提升通信效率。

m0n1o2p的博客 255

Streamlit:用 Python 快速构建交互式可视化 Web 应用的“傻瓜式”神器(创建第一个应用)

本文介绍如何使用Streamlit快速构建Python交互式Web应用。Streamlit是一个无需前端知识的Python库,仅用几行代码就能创建专业的数据可视化界面。文章提供详细入门指南,包括环境准备、安装Streamlit、创建首个"Hello World"应用、添加交互组件(文本输入框、滑块、按钮等)以及展示数据图表。通过逐步指导,读者可以轻松掌握这个"傻瓜式"神器,将Python数据分析结果快速转化为美观的Web应用,提升工作效率和成果展示效果。

weixin_42636075的博客 1647

RS485差分信号A下拉B上拉导致的乱码问题:一个硬件工程师的踩坑实录

本文通过一个工业网关项目中的RS485通信乱码故障,深入剖析了差分信号偏置电路设计的核心要点。文章详细记录了从波形抓取、原理图分析到多节点冲突排查的全过程,重点揭示了A下拉、B上拉这一反常规配置如何导致总线空闲状态不稳定,进而引发数据包末尾多出0x00字节及前导乱码的问题,并最终给出了硬件与软件协同的系统级解决方案与设计准则。

weixin_29159441的博客 236

Python交互式Web框架:Streamlit、Gradio、Dash、Hyperdiv

概述;Streamlit:使用、控件;Gradio:实战;Dash:原理、回调函数、实战、多页面布局、Plotly Studio;Hyperdiv;对比;参考。

lonelymanontheway的博客 1632

从‘全步’到‘微步’:一张图看懂步进电机细分控制,选对模式让你的项目更丝滑

本文深入解析步进电机细分控制技术,从全步到微步的演进过程,帮助工程师根据项目需求选择最优控制模式。通过对比不同细分等级的性能特点和应用场景,提供3D打印、实验室自动化等领域的黄金配置方案,实现更精准、平稳的电机控制效果。

weixin_29290259的博客 471

从原理到实战:深入解析 Synopsys VCS 仿真快照技术,提升验证效率

VCS Checkpoint 技术摘要 VCS Checkpoint 是 Synopsys VCS 提供的仿真状态快照功能,可将完整的仿真状态(寄存器、存储器、时钟、随机种子等)序列化保存。主要应用场景包括:跳过耗时初始化阶段、覆盖率驱动验证、Debug复现和UVM分阶段验证。核心原理是对仿真内核状态的完整序列化,需注意文件句柄等特殊对象需手动处理。 使用方式: 编译时添加 -checkpoint 选项 运行时通过 $save 系统任务或 +checkpoint 参数保存状态 通过 +restore 参数恢

元直的博客 248

Streamlit终极指南:如何快速构建交互式数据应用

Streamlit是一个革命性的Python框架,专为数据科学家和开发者设计,能够将Python脚本快速转换为功能丰富的交互式Web应用。通过Streamlit,您可以在几分钟内构建专业的数据仪表板、分析工具和可视化界面,无需前端开发经验。本文为您提供完整的Streamlit入门指南,涵盖从基础安装到高级应用的全面教程。 ## 为什么选择Streamlit开发数据应用? Streamlit的核

gitblog_00828的博客 1060

基于VLFM的中文指令视觉语言导航系统设计与实现

文章摘要 本文介绍了一个基于VLFM(视觉语言边界地图)的中文指令视觉语言导航系统设计与实现。该系统采用模块化架构,包含三维场景渲染、URDF机器人仿真、VLFM导航引擎、中文指令解析和PyQt图形界面五大核心模块。系统支持自定义GLB场景模型和URDF机器人模型,通过transformers和langchain实现中文自然语言指令解析,利用VLFM算法进行语义导航决策。技术实现上详细介绍了GLB模型加载器开发、URDF机器人控制、VLFM导航算法集成以及PyQt界面设计。该系统在Ubuntu环境下运行,依

AI的内部世界的博客 208

Python streamlit库:一款快速构建交互式Web应用

更多Python学习内容:ipengtao.com在数据分析和机器学习项目中,如何将复杂的分析结果以简单直观的方式展示给用户是一项重要的挑战。Streamlit 是一个专为数据科学家和机器学习工程师设计的Python库,它可以快速构建交互式Web应用,而无需掌握前端开发知识。通过几行代码,用户即可将分析结果、机器学习模型或数据可视化图表变成一个易于分享的Web应用。安装安装 Streamlit 十...

GitHub_miao的博客 1144

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Streamlit 数据应用开发:快速将脚本变为交互式Web App

Streamlit是一个让数据科学家快速构建交互式Web应用的Python框架。本文通过两个实战案例演示其核心功能:1)房价数据分析看板,展示数据加载、筛选和可视化;2)模拟AI文本生成器,实现参数选择和动态内容生成。Streamlit无需前端知识,通过简单Python脚本即可创建美观的交互应用,支持实时更新和丰富组件。文章还推荐了免费AI模型资源平台0v0 AI助手,便于开发者接入强大AI能力。该框架大幅降低了数据应用开发门槛,是数据科学项目展示的理想工具。

专注分享人工智能、机器学习、数据分析、大语言模型与网络安全相关内容。我们关注前沿技术发展、实用工具与应用案例,旨在为读者提供清晰易懂的知识讲解和实践经验,帮助你高效掌握技术趋势并提升实战能力。 1090

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

使用Streamlit快速搭建和共享交互式应用

大家好,在数据科学和机器学习领域,向他人展示见解和分享结果与分析本身同样重要,然而创建交互式和用户友好型的应用程序通常需要复杂的框架和耗时的开发过程。Streamlit是一个Python库,它简化了以数据为重点的网络应用程序的创建过程,使开发人员和数据科学家能够快速将他们的想法转化为交互式仪表盘和原型。综上,Streamlit是Python开发人员和数据科学家快速搭建和共享交互式应用程序的革命性工具,其简单性、易用性和快速开发能力使其成为原型设计、展示结果和创建引人入胜的数据体验的理想选择。

csdn1561168266的博客 902

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: 基于角色的访问控制(RBAC)实现资源权限管理
下一篇: 基于 OpenAI API的聊天机器人客户端示例
IT_WEH_coder
博客等级 码龄5年 2万+粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT_WEH_coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值