范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Electron框架中调用Python构建桌面应用

  为什么想在 Electron 中调用 Python
  不同的语言、框架都有自己擅长的领域:Electron 基于 Chromium 和 Node.js 能以 Web 开发的模式打造桌面应用,开发用户界面又快捷又简单;Python 则在数据分析、自动化脚本等领域有非常多的应用。两者的社区生态都十分强大,由两者共同构建应用,在界面开发、功能、性能上能够强强联合;
  为了简单验证技术可行性,我们来编写一个 Demo:Demo 说明
  目的:验证 Electron 打造的桌面应用能够调用 Python,思路是使用 RPC 或 HTTP 或 WebSocket 进行通信
  Demo 功能:输入 x、y 坐标,程序会移动鼠标到屏幕的 x,y 位置(通过 python 库 pyautogui 实现)
  Demo 运行环境:MacOS、pyInstaller: 版本 4.5.1、python: 版本 3.9.7
  源码:-------- 项目源码 --------
  注意:移动鼠标需要授予应用控制权限,在 MacOS 下设置 偏好设置 -> 隐私 -> 辅助功能 -> 允许对应的应用。
  技术栈:NodeJS、Electron、Python、aiohttp(HTTP、WebSocket)、pyautogui(控制鼠标)如何实现两者的通信
  为了使 NodeJS 和 Python 能够通信,Python 需要启动一个本地通信服务,Demo 中 py/api.py 能够启动一个本地 HTTP 服务:from aiohttp import web import controller  app = web.Application() app.add_routes([web.get("/controlMouseAndKeyboard", controller.controlMouseAndKeyboard),                 web.get("/t", controller.test),                 web.get("/ws", controller.websocket_handler)])  if __name__ == "__main__":     web.run_app(app, port=1134) 复制代码
  然后我们需要执行 Python 代码以启动服务,为了使 NodeJS 可以执行 Python,我们使用 pyinstaller 将 Python 打包成可执行文件:# 打包命令 pyinstaller ./py/api.py --clean --distpath ./pydist # 打包后可执行路径 pydist/api/api 复制代码
  Python 启动了本地 HTTP 服务后,Chromium 和 Node.js 就可以通过请求的方式,与 python 连接通信了:    const res = await axios.default.get("http://localhost:1134/controlMouseAndKeyboard", {         params: {             x,             y,             duration: 0.5,             action: "move"         }     }) 复制代码
  简单来说三个步骤:NodeJS 执行 Python代码Python 代码启动了一个本地 HTTP 服务通过发起 HTTP 请求与 Python 服务通信从 Demo 到项目实践的思考
  本项目只是一个验证思路的 Demo,真的需要在项目上实践,还需要考虑以下几个点:
  应该使用 RPC 通信而不是 HTTP 或者 WebSocket,Demo 使用 HTTP 只是搭建方便。实践中在建立连接、保持连接、异常重连都需要编写更多的逻辑来处理。为什么 Demo 没有使用 zerorpc? 这个库已经 4 年没有维护了,不兼容新版 NodeJS。
  项目通过 pyinstaller 打包成可执行文件来调用 python。实际上其他能编译为可执行文件的语言也一样。还可以使用 WebAssembly 将其他语言编译成 .wasm,在 NodeJS 中引入执行。

vivo手机通讯录如何搬迁到华为手机我的vivox21手机入手已5年电池已下岗,换个华为妹特10泼肉,传通讯录时候,我发现传统方法不行(蓝牙,wlan),于是上网搜方法,都是下载克隆软件,互传软件,反正就是各种软件。首发5K买不起,现在800卖不了,索尼RX0到底香不香?运动相机最火的那年,索尼也出了一款索尼RX0,当年4899,本地拍视频的老法师有一台,我体验过几次,虽然很不错,但价格太贵,另一方面,当年自己是以拍照片为主,又不拍视频,实在用不到买红米K50Pro还是iQOONeo6?仔细对比6点之后,终于明白了iQOONeo6已经发布了,作为发布价最便宜的骁龙8Gen1手机,该机上市之后受到了全网数千万用户的关注。这不,最近就有粉丝私信小编,说这款手机和红米K50Pro相比,到底谁更值得1395亿!P2P网贷教父被起诉!有哪些警醒?1395亿!!!网贷教父周世平被起诉!给我们普通人有哪些警醒?4月14日,网贷教父周世平被起诉,据告知书,该案件集资参与人累计51。68万名,非法集资1395亿元,造成11。96万大批iphone价格再次触底,等等党不要乱买,这3款性价比最高最近大概看了一下国内旗舰机的表现,官方价格依旧坚挺。5000元价格段的手机,iQOO9Pro降幅算是比较大的,为300块钱。其他几款基本上不降,或者是100多。但是再看看第三方店铺又一6000mAh新机备货,12256G低至1399,诚意太足了对于经常出远门,或者说经常出去聚会工作学习的群体来说,其实在买手机的时候,比较建议大家选择大电池类型,因为电池大续航更好,充满电带着出去不担心没电。但需要注意的是,现在手机界的电池我有两块显示屏,体验能翻倍吗?其实在我眼中,便携式显示器这一细分品类面向的客户更多的是商务一族和游戏玩家居多,如果你最近在想添置一款便携式显示器,不妨可以看看这款雕塑家MF16LC便携式显示器在连接多设备上,有工业互联网必须回归工业本质工业互联网,必须回归工业本质网上有一个很流行的笑话,大意是,韩国爆发了传染病,有一个被感染的女孩,从医院走丢了。还好,有女孩的照片。于是,全城大搜捕。结果。警察蜀黍竟然抓了400个DECampamp39SJAVA第1课基础学习JavaSEJava标准版本JavaEEJava企业版JavaMEJava微型版(移动设备和嵌入式设备)JDKJava开发工具包(开发人员必须安装)JREJava运行环境(运行Ja亚马逊编年史了解首富贝索斯听樊登读书亚马逊编年史去了解一个企业了解一个人!亚马逊的AWS(云服务)作为一个独立业务,在2005年开始起步。贝索斯的前瞻性,以为阿里云挺牛,但是思路原来源自于亚马逊。并且AWS安装设置Redis安装Redis打开终端,输入命令sudoaptgetinstallredisserver设置Redissudovimetcredisredis。conf打开远程连接将bind修改为
桌面太单调?OriginOS多元化桌面风格,秀出个性vivo全新系统OriginOS发布之后,带来的诸多亮点功能,引起了不少消费者的关注!尤其是OriginOS能够借助华容网格原子通知等功能打造创意桌面这一特色,让不少用户对其中的设轻盈直追苹果AirPods音质接近CD,南卡LitePro由于自己耳朵耳道比较小,对耳机的要求有点过分,纵然评测过的蓝牙耳机已经有十几款,但还是没有一款蓝牙耳机能替代AppleEarPods的位置令笔者愿意一直随身携带,其次也是因为没有机音乐盛会迎国庆,线上线下同祝愿国庆前夜,大雁塔下,召唤英雄风与鸟的密语,富有陕西特色的华阴高腔秦腔和慈悲大雁塔响彻同一片夜空,为古城人民带来一场文化的饕餮盛宴。本次公演活动同步在咪咕视频中国移动互联网电视新华社大众全新旗舰SUV揽境,既能商用也能家用,我愿称之为全能型前几天去看了全新奥迪Q5L,第一眼就非常欣赏这个车的外观,整个车身比一般的SUV还要大,看起来就很霸气,尤其那大轮毂感觉很强悍。而且驾驶内功能齐全,车内设计也比较豪华。当天和朋友试高颜值的外表,年轻的旗舰机,iQOONeo855版图片鉴赏相信对于很多手机用户来说,在选择手机的时候往往会比较看中价格,会追求低价高性能高颜值的手机。由于用户们对手机的要求日渐提高,因此为了满足他们的需求,各大手机厂商都纷纷推出高性价比的苹果三星的零头,手表通话全程通也能实现每每看到豪哥们用手表接听电话的姿势真是酷毙了,在广大网友的认知里,能实现这种饱含科技范的产品除了苹果就非三星莫属了,甚至一度因为这个极具科技含量的功能在智能手表领域中很稀缺,而被网不等苹果,骨传耳机别人都玩疯了,初尝南卡RunnerPro骨传导耳机也称骨感耳机,是一种全新的不入耳传导技术耳机,它推出也有一段时间了,平时对耳机这类音频设备有点偏好,也特别想看看苹果发布会有没有推出这种不入耳的黑科技耳机,结果是自己一厢5G时代来临,捷达品牌带你感受车联网的智能时代相较于多数主机厂把车联网作为一个技术模块不同,依托三方的深度战略合作,捷达品牌构建起车联网自主研发。基于阿里AliOS的底层架构,从用户体验角度出发,自主研发适合捷达车主使用场景的安防重任新角色,斑点猫智能猫眼X3坚防入户第一线传统的家庭安防第一关一直放在门锁上,智能科技的发展开始将家庭安防重任第一关分配给了智能猫眼。因为智能猫眼能够借助智能手机实现远程监测门外实况。斑点猫智能猫眼作为行业的佼佼者,最近又coKiingAI空调震撼来袭重新定义未来高端空调2019年10月21日,全屋互联网家电品牌云米携手高端AI科技家电品牌coKiing在北京举办主题为用AI科技,探索无限未来发布会。会上全球首发coKiingAI变频空调系列新产品捷达品牌携手2021成都马拉松,创造美好回忆2021成都马拉松将于10月31日鸣枪起跑,赛事规模为35000人。赛事奖金方面,为鼓励并协同提高我国精英选手竞技水平,赛事奖金全面提升,其中全程马拉松奖金额度是去年的3。15倍,