Preswald

Preswald

Structured Labs · 程式設計

Preswald 是開源框架,能把 Python 腳本變成互動式資料應用,再打包成獨立檔案,在瀏覽器裡執行,完全不需要伺服器。

Preswald 的介面預覽

關於 Preswald

About

Preswald 是什麼

Preswald 是為互動式資料應用打造的靜態網站產生器,由 Structured Labs 開發,以 Apache 2.0 授權釋出。你用 Python 寫應用,一行指令就能把它編譯成一整個資料夾的靜態檔案,接著在瀏覽器打開,或直接交給別人。執行的那台機器什麼都不用裝。

它要解決的是交付問題。分析師可以在 notebook 裡用 pandas 和 Plotly 做出分析,但要分享給別人,通常得請對方先架好 Python 環境。Preswald 把你的程式、資料和介面一起收進一個可攜套件,離線就能跑。底層用的是 WebAssembly:Pyodide 執行 Python,DuckDB 處理查詢,兩者都直接在瀏覽器分頁裡跑。

這樣的設計有幾點得先講清楚。因為全部在客戶端執行,資料量很大或運算很重時,會受制於訪客自己的機器和瀏覽器記憶體。這個專案也還年輕,社群回報的圖表重繪問題顯示它仍在成熟中。官方網站目前會導向 Structured Labs,該公司持續在自家其他產品之外維護 Preswald。

開始使用

  1. 用 pip install preswald 或 uv pip install preswald 安裝套件。
  2. 執行 preswald init my_app,產生含應用檔、設定檔和範例資料的專案骨架。
  3. 編輯 Python 檔,匯入 text、table、get_df 等介面元件來排版。
  4. 執行 preswald run,啟動本機開發伺服器,在 localhost 預覽應用。
  5. 執行 preswald export,在 dist/ 資料夾建出離線可執行的靜態套件,可直接分享。

產品資訊

快速了解 Preswald 的定價、支援平台與效能。

免費方案是
付費方案Free (open source)
平台Web (browser), Command line
開發者Structured Labs
類別程式設計
發布日期Feb 2025
最近更新Oct 2025
網站訪問量N/A
網站全球排名6.6M
API 提供狀態N/A

適合對象

這項工具最適合的使用者、任務與情境。

使用者

  • 資料分析師:把 pandas 或 SQL 分析變成能分享的儀表板,不必架網頁伺服器,前提是資料集能塞進瀏覽器記憶體。
  • Python 開發者:用自己熟悉的語言交付內部工具,不用另外學 JavaScript 前端框架。
  • 要交付成果給其他部門的資料團隊:給對方一個開檔即用的獨立檔案,只要對方用現代瀏覽器就行。
  • 重視隱私的團隊:運算留在本機,應用要跑並不需要任何資料離開這台機器。

任務

  • 打造分析師儀表板:把表格和圖表組成靜態網站,使用者調整篩選條件時即時更新。
  • 撰寫互動式報告:把 notebook 式的分析變成會回應篩選與選取的動態頁面。
  • 發布資料檢視工具:針對檔案、日誌或快照,做一個小而專用的操作介面。
  • 打包離線工具組:把應用綁好,帶去外勤或無法連網的隔離環境使用。

情境

  • 把工具交給不熟技術的同事:對方開的是檔案,不是終端機,沒有任何環境要設定。
  • 處理機密資料:運算留在瀏覽器,就不必把紀錄送到第三方的伺服器。
  • 快速做資料產品原型:一個下午就能做出可用版本,再決定要不要投入更重的網頁架構。
  • 給 AI 代理一個結構化工具:應用就是單純、可檢查的程式碼,代理讀得到也改得動。

主要功能

以 Python 為核心的開發方式

整個應用都用 Python 寫,文字、表格、圖表、表單都有現成函式可用。沒有 JavaScript 要寫,也沒有 notebook 執行環境要對付。對已經熟悉 pandas 的人來說,從分析腳本跨到能跑的應用只差一小步。

以檔案為單位的輸出

一行 preswald export 就把應用編譯成 dist/ 資料夾裡的靜態網站。裡面包含執行所需的一切,你能壓縮、架站,或丟進共用磁碟。任何現代瀏覽器都能離線開啟。

用 Pyodide 與 DuckDB 在瀏覽器內運算

執行環境透過 Pyodide 跑 Python,透過 DuckDB 跑查詢,兩者都編譯成 WebAssembly。真正的資料處理發生在分頁裡,不在遠端伺服器。DuckDB 能快速對本機檔案執行分析型 SQL,這也是瀏覽器內資料應用跑得順的關鍵。

反應式引擎

Preswald 追蹤狀態的相依圖,只重跑受影響的部分。使用者動一下篩選條件,應用只重算相關輸出,不會整份腳本重來。應用變大時,互動仍然順暢。

可組合的介面元件

框架內建表格、圖表、表單、版面等積木。放進腳本就會渲染成一致的介面。常見的資料檢視不必自己手寫標記和樣式。

預設在本機執行

應用全在瀏覽器裡跑,所以沒有後端要部署、防護或付費。資料留在執行應用那台機器上,適合機密資料與離線外勤。但這也正是資料量與運算量受限的原因。

Apache 2.0 開源

Preswald 以 Apache 2.0 授權釋出,在 GitHub 上公開開發,你可以讀程式碼、開 issue、送貢獻。專案由 Structured Labs 維護,Slack 和 GitHub 討論區都有活躍社群。

優缺點

優點

  • 應用用 Python 寫,分析師不必學前端技術就能分享成果。
  • 產出是獨立靜態套件,在瀏覽器離線跑,沒有伺服器要部署。
  • DuckDB 和 Pyodide 把真正的 SQL 與 Python 執行帶進瀏覽器分頁。
  • 反應式重算讓互動儀表板在規模變大時依然順暢。
  • Apache 2.0 授權沒有綁定廠商,自架完全自由。

缺點

  • 全部在客戶端跑,資料一大或運算一重,就會撞上訪客機器的記憶體與速度上限。
  • 專案還年輕,社群回報的圖表重繪問題顯示執行環境仍在成熟,可能遇到不夠細緻的地方。
  • 沒有官方文件的雲端 API,想要託管後端的團隊得另尋方案或自行架設。
  • 透過瀏覽器交付,應用依賴現代瀏覽器,不適合排程或無介面的伺服器工作。

常見問題

Preswald 用 Python 打造互動式資料應用,打包成在瀏覽器執行的靜態檔案。適合儀表板、報告、資料檢視工具,以及需要分享、又不想麻煩別人架 Python 環境的原型。