
给加界面别再硬扛或了。先以你电脑自身所带有的浏览器充当界面, 而后端部分任意编写, 这两者借助一个极为轻量级的库来实现毫无缝隙的通信。有一个名为Eel的库里, 其具备特点是核心的代码量小于100KB, 它在打包之后具有这样的情况, 体积仅仅是传统方案的几十分之一这么小, 而使用者上手所需要的时间仅仅只要三分钟。好了干货直接开始。---为什么你的脚本需要一个现代UI编写程序的人都清楚, 哪怕命令行极为强大, 然而对于并非技术领域的用户而言, 一旦瞧见黑框框便会心生畏惧。假设你打算给同事提供一个数据清洗工具, 又想要给客户呈现一个模型演示的demo, 亦或是自己打算制作一个具备效率的小软件, 那么用户界面这一环节是无论如何都无法避开的障碍。布局依靠猜测, 控件丑得如同98年的注册机一般, 书写一个表格, 滚动起来都费力, 用?· 使用PyQt进行学习, 曲线十分陡峭, 信号槽会让人晕头转向, 在商业部署时, 还要留意LGPL。采用套壳的手段? 仅仅一个Hello World运行起来就要耗掉200MB的磁盘空间, 以及100MB的内存容量, 这实在就像是拿着火箭筒去击打蚊子一样, 实在是太夸张了。鳗鱼的这种解法聪明得出乎你的意料, 它并非捆绑任何浏览器内核, 采用的是直接调用你电脑上自带的那属于Edge的那一部分组件。你的界面呈现出的是一个极为普通的HTML文件形态, 选用任何一种前端研发框架不管是Vue也无论是React都可以后端所包含的函数借助装饰器的方式朝着前端进行有效暴露, 实现双向调用并且以异步的形式返回数据, 既毫无那种复杂到极点而且与RPC在性质本质上完全不一同的情况也不存在另一种完全不相同的复杂状况。下面我直接带你把一个完整的工具跑通。---三分钟极速上手从零到一个可交互的桌面应用安装就一行bashpip eel项目结构建议这样放/├── web/ # 前端代码放这里│ ├── main.html│ ├── style.css│ └── .js└── main.py # 后端入口后端代码 main.pyeel将“eel.init(web)”, 此操作是指向前端文件夹。eel.def ():想象一回数据处理工作: 收受前端递送过来的列表, 给出统计得出的结果。if not :{error: 没数据啊}{sum: sum(),avg: sum()/len(),max: max(),: .(, , eel.def ():获取一些系统信息演示能力f {.()} 跑在 {.()} 上让鳗鱼启动“主页面.html”, 其尺寸为600, 500。前端代码 web/main.html核心部分html数据分析小助手 (Eel 演示)分析数据系统信息等待操作…执行main.py, 这会儿能察觉一个现代化桌面应用于你所设定的默认浏览器之中弹出。和那种普通的网页开发毫无二致, 然而却能够直接去调用本机全部的能力, 诸如读写文件、调用AI模型、操控硬件以及连接数据库等, 任由你选择。---四个让Eel封神的实战场景1. 为数据分析做可视化看板有这样一个流程, 后端负责处理数量达到几十万条的 Excel 记录, 之后将统计得出的结果转化为 JSON 形式发送给前端, 然后前端直接运用 /Chart.js 来渲染出动态图表。当老板过来的时候, 打开该软件便能够进行展示, 这显得比专业的还要专业得多, 很厉害呢。2. 深度学习模型的可视化演示工具你曾塑造了一个图像分类模型, 亦或是GPT对话接口, 撰写几行Flask颇为繁琐。借助-Eel, 前端将图片的路径予以传递, 后端由此调用torch或者进行推理, 最终实时把结果返还并展示出来。将其打包成exe发送给客户, 对方双击便能够使用, 无需安装环境。3. 自动化脚本的图形界面就好比批量文件进行重命名这个操作, 还有PDF合并这一行为, 以及爬虫配置工具。往昔之时你仅仅能够编写input(), 以此让用户于命令行里做出回答, 然而现在呢, 运用复选框, 还有文件选择器, 再加上进度条, 使得用户体验增强了好几个档次。4. 内部系统的快速原型公司所需的是一个工单录入工具, 此工具要简单, 以及库存查询前端, 要借助Eel , 能够在两天内完成交付, 并且其体积是仅有几MB, 将其部署到任何电脑之上都能够运行。---避坑 打包发布先说默认浏览器问题, Eel作为默认是会被使用的存在, 如果用户这边并没有它, 那么就会自动去尝试使用Edge, 你呢, 也能够以强制的方式去指定, 即eel.start(main.html, modeedge)。异步需留意, 前端调用函数之时, 得运用await eel.func()() , 之所以要有两个括号, 是鉴于Eel返回的属于一个具备可调用特性的对象, 可像写成eel.func()()这般也可行标点符号。· 打包成exe配合命令示例bash添加数据, “网络网络”, 主程序文件.py。要记得把web文件夹一块儿进行打包, 最终所形成的exe一般情况下只有10来兆到20兆之间这是根据你所依赖的库来确定的, 相较于动不动就上百兆而言干净了许多。要点在于: 它做不了要求具备极致GUI性能水平的游戏, 也做不了那种需要与操作系统底层进行紧密融合的复杂软件, 然而, 对于绝大多数的内部工具、效率类应用以及演示原型而言, 它却是那个最佳的选择 , 存在局限性。---总结Eel并非什么新奇之物, 然而它精准地击中了众多开发者的困扰之处, 那便是企图给程序赋予一个美观的外表, 却又不愿去鼓捣复杂的前后端分离技术, 它使得你能够运用最为熟知的技术构成方式, 即 HTML 加别的一些东西, 去编写出既具有视觉美感又蕴含内在品质的桌面应用程序, 并且具备足够轻巧、足够快速的特性。倘若你依旧在为“怎样给脚本增添个界面”而发愁, 那就别迟疑了。花费10分钟让这个例子顺利运行起来, 往后你所有的工具皆能够配上美观的外表。最后兄弟萌· 觉得有用点个赞让我看到你们的热情️• 要是你存有任何疑问, 或者你凭借它制作出了什么有趣好玩的东西, 在评论区交流讨论, 一块儿制造轰动效果。· 代码容易忘记收藏这篇文章下次写工具随时翻出来抄作业冲就完了