pywebview:把前端页面变成桌面应用
当需要给 Python 程序做个桌面 UI,Electron 太重,PyQt 又太麻烦,pywebview 提供了一个中间选项。它本质上是一个嵌入原生窗口的浏览器控件,让你能用 HTML/CSS/JS 写界面,用 Python 处理逻辑。
安装
通常直接安装全量版就行:
pip install pywebview
如果希望指定渲染后端,比如用 CEF 或 Qt:
pip install pywebview[cef] # Chromium Embedded Framework
pip install pywebview[qt]
快速开始
最简例子,打开一个网页:
import webview
window = webview.create_window('Hello pywebview', 'https://pywebview.flowrl.com')
webview.start()

create_window 创建窗口,start 启动事件循环,就这么简单。如果想加载本地 HTML,可以直接传字符串:
html = '''<!DOCTYPE html>
<html><body><h1>Hello from HTML!</h1></body></html>'''
webview.create_window('Local App', html=html)
webview.start()

这种方式省去了运行 Web 服务器的步骤,但注意本地 HTML 中引用的图片等资源得用 Base64 内联,因为没有文件系统上下文。
如果需要运行一个后端服务(比如 Flask),可以这样:
webview.create_window("My App", "http://localhost:3000")
webview.start(http_server=True, port=3000)
Python 与 JavaScript 通信
pywebview 支持双向调用。最常见的需求是前端触发 Python 逻辑:把 Python 对象暴露给 JS,前端通过 pywebview.api 调用。
Python 端:
import webview
class :
():
api = Api()
window = webview.create_window(, html_path=, js_api=api)
webview.start()



