当前位置:首页>python>这个Python神器,一套代码搞定桌面应用、网页和Jupyter

这个Python神器,一套代码搞定桌面应用、网页和Jupyter

  • 2026-10-11 08:41:59
这个Python神器,一套代码搞定桌面应用、网页和Jupyter

说实话,这些年折腾Python做界面,真是把我搞怕了。写个简单的Excel工具吧,用Tkinter丑得自己都不想看;上Electron吧,一个Hello World就要200多M,启动慢得像老牛拉车;想在Jupyter里做个交互原型,又得学一堆前端框架。烦不烦?

直到前两天,我在GitHub上瞎逛,发现了一个叫PyWry的东西——好家伙,这玩意儿简直是Python桌面开发的救星。

PyWry是什么鬼?能用一句话说清楚吗

简单粗暴地讲,PyWry就是一个能让你的Python代码直接跑出原生系统webview的UI工具包。不是Qt、不是Electron、也不是什么CEF——它直接调用你电脑操作系统自带的浏览器内核:Windows上是WebView2,Mac上是WKWebView,Linux上是WebKitGTK。

啥意思?就是你用HTML/CSS/JS写界面,Python处理后端逻辑,打包出来的exe才几十兆,启动快得飞起。

最骚的是:一套代码,三种玩法

PyWry的设计思路我觉得特别妙——同一个API,给你三个输出目标:

目标
说明
什么时候用
原生窗口
调用OS系统webview,不用Qt/Electron
做桌面小工具、爬虫界面、内部管理系统
Jupyter小组件
基于anywidget+FastAPI+WebSocket
在Notebook里做交互可视化,原型验证
浏览器Tab
FastAPI服务器 + Redis状态后端,可水平扩展
部署成Web应用,多人同时访问

用一句话概括:Build Once, Render Anywhere。在Jupyter里调好界面,一行代码改成桌面应用,再一行代码发布成Web服务——就是这么任性。

上手有多快?三行代码跑起来

你先pip装一下:

pip install pywry

Linux用户注意啊,系统缺一个依赖,提前装好:

sudo apt-get install libwebkit2gtk-4.1-dev libgtk-3-dev ...

然后写个python文件:

from pywry import PyWry

app = PyWry()
app.show("<h1>Hello 老铁</h1><button onclick='pywry.emit(\"click\")'>点我</button>")
app.block()

跑了没?一个原生窗口弹出来,里面显示你的网页。点一下按钮,还能回调Python函数——这就双向打通了。

除了基础窗口,还有一堆现成的组件

我看了下它的文档,发现连Pandas表格和Plotly图表都内置支持了:

import pandas as pd
from pywry import PyWry

app = PyWry()
df = pd.DataFrame({"姓名": ["张三", "李四", "王五"], "分数": [88, 92, 76]})
app.show_dataframe(df)  # 出来一个可排序、可筛选的AgGrid表格
app.block()

更狠的是,它还内置了一个聊天组件,支持OpenAI、Anthropic等大模型的流式输出,还能用slash命令。你想想,几行代码就能给Python程序加一个AI对话侧边栏,这多爽。

要说缺点的实话

也不是没毛病。我试了一下,文档里那个MCP服务器集成有点超前,普通用户可能用不上;另外Linux下得自己装webkit2gtk,Windows和Mac倒是开箱即用。还有一点,如果你要做特别复杂的桌面应用(比如视频剪辑、3D渲染),还是得上Qt。PyWry更适合数据类、工具类、爬虫类的轻量应用。

安装选项怎么选?

它设计得还挺贴心,按需装:

额外选项
命令
适用场景
notebook
pip install 'pywry[notebook]'
想在Jupyter里用
auth
pip install 'pywry[auth]'
需要OAuth2登录
freeze
pip install 'pywry[freeze]'
要打包成exe
mcp
pip install 'pywry[mcp]'
想接入Claude Desktop等AI客户端
openai
pip install 'pywry[openai]'
内置聊天组件要用GPT
all
pip install 'pywry[all]'
懒得想,全部装上

最后说点实在的

我觉得PyWry最大的价值,是让Python开发者不用学Electron、不用碰Node.js,就能做出漂亮的原生桌面应用。而且它还打破了“桌面端、Web端、Notebook端”三者之间的壁垒——写一份代码,哪儿都能跑。

之前我写过一个Excel数据清洗工具,用Tkinter折腾了两周,界面丑得像20年前的软件。要是早知道PyWry,我两天就能搞定,而且还能直接甩给别人一个exe文件,都不用装Python环境。

项目地址:https://github.com/deeleeramone/PyWry

最新文章

随机文章