在 Windows 版 Electron 上安装 robotjs 时遇到的问题
在一次Electron开发中使用到robotjs,发现一直不能安装成功,问题出在robotjs版本和当前electron使用的node版本不一致问题,解决方法就是使用相同版本重新编译electron和robotjs,但是编译robotjs中涉及到一些其他工具安装,并没有那么顺利,终于折腾了几天搞定了。
环境和版本
- windows 10
- node v14.10.0
- electron 10.1.5
- robotjs 0.6.0
安装robotjs(使用管理员运行CMD)
cnpm install robotjs --save
安装中出现一系列报错先不用管,robotjs在安装后会进行一次编译,大概率是编译出现了问题。
重新编译robotjs(使用管理员运行CMD)
- 安装vs2013构建工具(windows-build-tools)
- python v2.7.3 注意3.x不支持
- 安装node-gyp
安装vs2013构建工具(windows-build-tools)
cnpm install -g --production windows-build-tools
- 出现安装失败可以手动在当前用户目录下
C:\Users\Administrator\.windows-build-tools
- 安装:
vs_BuildTools.exe
和python-2.7.15.amd64.msi
如果没有vs_BuildTools.exe
,点击这里下载:
链接:pan.baidu.com/s/14oAJMdyI… 提取码:4grb
安装node-gyp
cnpm install -g node-gyp
运行报错的把之前安装过的node-gyp 或者使用npm yarn安装过的都删除掉再安装
重新编译robotjs
在项目的node_modules\robotjs
下执行:
// 安装依赖
cnpm install
// 编译 指定之前安装的python来编译 目录一般在c盘
node-gyp rebuild --python C:\Python27\python.exe
重新编译electron
npm rebuild --runtime=electron --target=1.1.3 --disturl=https://atom.io/download/atom-shell --abi=48
--target
: electron的版本--abi
: electron中Node对应的abi 地址:github.com/mapbox/node…
添加编译命令在scripts
中"rebuild": "npm rebuild --runtime=electron --target=10.1.5 --disturl=https://atom.io/download/atom-shell --abi=72"
执行: npm run rebuild
无任何报错则编译成功:
参考文档
robotjs.io/docs/electr… robotjs在electron中使用
robotjs.io/docs/buildi… robotjs重新编译
上一篇: 机器人框架 - 操作滚动条
下一篇: Python 同时输入多个整数
推荐阅读
-
iCloud 切换区域,中国区保留 appStore(更新)--自 2018 年 2 月 28 日起,中国区 iCloud 由云上贵州管理 苹果公司发布的公告 https://support.apple.com/zh-cn/HT208352 关键词 关键部分 受影响的 iCloud 账户:国家或地区设置为 "中国 "的 Apple ID。 iCloud 包含的服务照片、邮件、通讯录、日历、提醒事项、备忘、书签、钱包、钥匙串、云备份、云驱动器、应用程序数据 新条款和条件: 同意仅出于本协议允许的目的并在中国法律允许的范围内使用服务。 云桂洲在提供服务时应使用合理的技能并尽职尽责,但在适用法律允许的最大范围内,我们不保证或担保您通过本服务存储或访问的任何内容不会意外损坏、崩溃、丢失或根据本协议的条款被删除,如果发生此类损坏、崩溃、丢失或删除,我们不承担任何责任。您应自行负责维护您的信息和数据的适当备份。 Apple 和云上贵州有权访问您存储在服务中的所有数据,包括有权根据适用法律相互之间共享、交换和披露所有用户数据(包括内容)。 本协议的解释、效力和履行应适用*法律。对于因本协议引起的或与本协议有关的任何争议,云桂洲和您同意提交中国国际经济贸易仲裁委员会(CIETAC)根据提交仲裁时有效的法律在北京进行具有约束力的仲裁。 由云桂洲管理,用户选择: 停用; ID 到地区; 受 iCloud(由云桂洲运营)条款和条件约束 首先,我想说说我对数据安全的看法。 当我在朋友圈发布通知时,有些朋友回复说国外的操作并没有多安全,或者国外的安全只是相对于国外而言的等等。首先,我非常感谢这些朋友,这让我反思什么是数据安全。以下观点均属个人观点: 国外的月亮一定比国内圆? 这是一个根深蒂固的问题,只要有人说国外的东西比国内好,就会有人嘲笑崇洋媚外。我觉得我们在某些方面应该向国外学习,比如搜索引擎和版权问题。打开百度搜索 "数据安全",第一行肯定是广告。打开谷歌搜索 "数据安全",第一条就是 "数据安全_百度百科" .....各种版权问题大家都明白,支持正版,但不仅客户一心想找免费破解,就连作者也往往没有保护自己劳动成果或产品的想法。但从另一个层面来说,国内的发展和安全,甩国外几条街。没有说哪里好,哪里不好,辩证地去学习更好。 国外也有别有用心的数据泄露,谈何安全? 从加密解密的角度看,自古以来就没有绝对安全的加密,只有相对安全的做法。苹果的棱镜门、微软的 cpu 漏洞,各种参差不齐的被破解案例 ....是的,这的确是一个很好的论据,但凡事都不能只看一面,当年苹果面对FBI破解手机的要求,几经论证,苹果还是拒绝破解。这点拿到国内,只要上面的文件传达下去,还有企业敢说不吗?还敢说不吗? 关于这次iCloud数据迁移个人看法? 把数据迁移到贵州的云端,相当于把手机的所有数据都存储在贵州的云端服务器上。也许访问数据的速度会快很多,但我会把我的iCloud区放到美国,因为我不想数据存在云上贵州后经常接到莫名其妙的电话或短信,更不想因为乱用国外服务器而被请去喝茶。iCloud一个ID,即从中国账号转到美国区,主要用于数据存在美国服务器上。appStore一个ID,除了注册一个中国ID外,专门用来下载应用用,因为国外ID不支持酷狗和网易云等应用。麻烦的是,用了新的 appStore ID 后,当前的应用还得重新下载安装,因为旧的应用 ID 与新的应用 ID 不兼容,安装不了。最后,iCloud迁移后,国内用户使用美国服务器,估计要 "扶墙 "了。 专业步骤: 首先,进行appleID设置,这是前提条件,否则无法选择转移区域! 取消 appleID 的双重认证 取消家庭共享选项 二、窗口下载并安装 icloud 3.0 版
-
在 Windows 版 Electron 上安装 robotjs 时遇到的问题
-
排除在 CentOS 7.x 上安装和部署 SeaTunnel Web 时遇到的问题。
-
在Linux Debian 10上使用DEB包安装向日葵客户端时遇到的安装失败问题记录
-
当我们还在谈“性”变色时,这群高中生拍了一部“小黄片”-sex的英剧在国内悄悄的火了,光是小肯关注的公号里,就发现已经不下十个公号写过这部网剧了。 这是一部由英美合拍的小众网剧,被称为校园版的《X爱大师》,它还有一个很直白的剧名《性爱自修室》。 没错,这是一部从标题就能看出“有点黄”的剧,当然,剧中的大尺度戏份也并不少。 比如第一集开始就出现的大尺度画面,让人非常措手不及了。 但就是这样一部从标题到剧情都很sex的剧,在国内掀起了一股不小的热潮,豆瓣评分高达9.1分,基本上看过这部剧的人都给了好评。 当然,如果这是一部只是在写“性爱”这么肤浅的剧的话,在豆瓣上是绝对达不到这样的高分。其实,《性爱自修室》又名《性教育》,是围绕青少年“性”问题展开的喜剧。 在剧中,你可能会意外的发现,这群高中生在青春期遇到的性问题,尴尬,不被理解的压抑,以及爱的问题,都是那么的真实。 这部剧到底拍的有多好呢? 不少网友在看完这部剧后,提到最多的一句话便是:“这哪里是我们的青春,这是我们羡慕的青春!” 在国内传统思想的影响下,“性教育”一直是我们缺失很久的一门课。 还记得,小时候与父母一起看电视每当看到有亲热戏的部分,父母都会第一时间跳转到另一个频道,而自己也不好意思的移开视线,这大概是和父母最默契的时刻。 在国外,许多孩子的性知识大多来自于父母或者老师。对比国内的小孩,大概许多人对“性”的了解,都来自于某部电影或者小说,而这部分没有父母的参与。 在《性爱自修室》中,男主奥帝斯是名高中生,和众多普通学生一样,在校园里很不显眼,也不被关注。普通的奥帝斯最特殊的地方大概是,他的妈妈是一名性治疗师。 每个小孩大概都问过父母同样的一个问题“我是怎么来的?” 大人都想着小孩子什么都不懂,所以随便找个理由忽悠一下就行,很少有父母愿意真正的向他们的孩子解释“你到底是怎么来到这个世界上的。” 而答案天花乱坠又刚刚好错过最正确的那个,我们听到最多的那个答案大概就是:“你是上天赐给我们的礼物。” 更别说告诉自己的孩子“什么是性爱?” 在剧中,奥帝斯就有这样的经历,大概在他六七岁的时候,他目睹了父亲的出轨,懵懂的他问母亲珍“什么是性”。作为性爱治疗室的珍,用极具学术性的语言为他解决了这个问题:性的意思就是,男性的生殖器官进入女性的生殖器官。