preswald

把 Python 数据应用打包成单个 HTML,浏览器里离线跑,分享像发文档。

Preswald 是一个面向 Python 交互式数据应用的 WASM 打包工具。它解决的核心问题是:传统数据应用(如仪表盘、报告)依赖服务器或 Python 环境,部署和分享成本高。Preswald 能将基于 Pandas、Plotly、Matplotlib 等库的复杂数据工作流打包成单个 HTML 文件,借助 Pyodide 在浏览器中直接运行,无需后端。用户可以用 Python 编写数据处理和可视化逻辑,最终产出一个离线可用、加载迅速、像文档一样易分享的文件。其核心能力包括:自动将 Python 依赖(如 DuckDB、Pandas)编译为 WebAssembly,集成 Plotly/Matplotlib 交互图表,支持构建仪表盘、报告和笔记本,并强调离线运行和文档式分发体验。该项目处于成长阶段,为数据科学家和开发者提供了一种全新的应用交付方式。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 4268
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类开源模型
开发团队StructuredLabs
所属国家
定价模式free
价格说明开源项目,Apache-2.0 许可证,完全免费,可自行部署使用。
访问状态
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型ai,analytics,analytics-engineering,copilot,data,data-applications,data-infrastructure,data-pipelines,data-sdk,data-visualization,gpt,llm,open-source,python,schema-management,vscode
GitHub 星标★ 4268
30天Star增速
HF 下载量
上线时间2024-12-14 00:00:00
最近更新2026-09-21 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数7

使用教程

难度:入门 约 10 分钟 部署方式:命令行工具 6 步

环境要求

  • Python 环境(README 指向 python.org/downloads,建议 3.9+)
  • 已安装 pip 或 uv 包管理器
  • 可访问 PyPI 的网络环境

安装与启动步骤

  1. 1安装 Preswald

    用 pip 全局安装 preswald 包;若使用 uv,可执行 uv pip install preswald。建议在虚拟环境中安装以避免依赖冲突。

    pip install preswald
  2. 2初始化应用

    在当前目录生成名为 my_app 的模板工程,包含 hello.py、preswald.toml、secrets.toml、data/sample.csv 和 images/logo.png。

    preswald init my_app
  3. 3进入项目目录

    切换到刚生成的 my_app 目录,后续所有命令都在该目录下执行。

    cd my_app
  4. 4编写应用逻辑

    编辑 hello.py,用 preswald 提供的 text、table、get_df 等组件写页面。README 示例先输出标题,再读取 sample.csv 并渲染表格。

  5. 5启动开发服务器

    在项目目录执行 preswald run,会拉起开发服务器。默认端口通常为 8501,可在 preswald.toml 的 [project] port 中修改。

    preswald run
  6. 6浏览器访问应用

    打开浏览器访问终端提示的地址,默认 http://localhost:8501,即可看到你的第一个 Preswald 应用。

关键配置

配置项必填说明示例
project.title否应用标题元数据Preswald Project
project.version否应用版本号0.1.0
project.port否开发服务器监听端口8501
project.slug否应用标识 slugpreswald-project
project.entrypoint否入口 Python 文件hello.py
logging.level否日志级别,可选 DEBUG/INFO/WARNING/ERROR/CRITICALINFO

如何确认成功

运行 preswald run 后终端出现 “ App running at: http://localhost:8501”,浏览器打开该地址能看到页面内容。

常见问题

Q:必须本地安装 DuckDB、Pandas 吗?

A:不需要。Preswald 基于 WASM 运行时(Pyodide + DuckDB),数据计算在浏览器中执行,无需本地依赖和后端服务。

Q:可以用 uv 安装吗?

A:可以。README 给出两种方式:pip install preswald 或 uv pip install preswald,任选其一即可。

Q:默认端口 8501 被占用怎么办?

A:修改 preswald.toml 中 [project] 的 port 字段,改成其他端口后重新执行 preswald run。

Q:API 密钥等敏感信息放哪?

A:放在项目根目录的 secrets.toml 中,初始化时会自动生成该文件,用于存放 API keys 等机密配置。

注意事项

  • 初始化生成的 data/sample.csv 与 images/logo.png 分别是示例数据与品牌图片,可替换为自己的文件。
  • preswald.toml 同时管理元数据、运行时设置、UI 品牌(branding)与数据源配置。
  • 主题色等外观可在 [branding] 中设置,例如 primaryColor = "#F89613"。

核心亮点

  • 一键打包 Python 数据应用为单文件,无需服务器,直接浏览器运行
  • 深度集成 Pyodide、DuckDB、Pandas,离线也能处理复杂数据
  • 支持 Plotly/Matplotlib 交互可视化,应用体验接近原生

不足之处

  • 打包后文件体积可能较大,影响加载速度
  • 文档/社区待观察

适用场景

  • 快速分享数据报告给非技术同事,对方无需配置环境
  • 构建离线可用的内部数据仪表盘,部署在本地或内网
  • 教学场景中分发可交互的数据分析笔记本

替代项目

Streamlit、Dash、PyWebIO

项目介绍

preswald 是办公效率领域的开源项目,由 StructuredLabs 开发,2024 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(4,268)位列前 10%,在办公效率分类的 142 个项目里位列前 15%。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-21。Apache-2.0 许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:快速分享数据报告给非技术同事,对方无需配置环境。同类可对比的替代方案包括 Streamlit、Dash、PyWebIO。

上一篇:QOwnNotes

下一篇:xiaoju-survey

同类项目推荐

sunshine-control-panel 开源

一站式管理游戏库、监控内存,AI 助手加持,让大屏启动更高效。

Sunshine Foundation 大屏桌面管理器 | Tauri + Vue 3,游戏库管理、米塔AI助手、内存监控···

★ 444 2026-08-09
Stirling PDF 开源

本地部署 PDF 工具箱

#1 PDF Application on GitHub that lets you edit PDFs on any device anywhere

★ 92816 2026-08-19
obsidian-md2wechat 开源

一键将 Obsidian 笔记排版成公众号文章,告别手动调格式

Obsidian → WeChat | Obsidian 插件一键排版发布到微信公众号,键排版发布到微信公众号:···

★ 314 2026-08-09
pdf2md 开源

浏览器里直接把 PDF 变成 Markdown,不用上传,隐私安全。

Browser based tool to convert PDFs to Markdown

★ 378 2026-08-09