electron程序启动报错“Uncaught Exception Error:The specified procedure could not be found”

分享如何通过兼容模式运行和管理员权限解决Electron程序启动时的'无法找到指定程序'错误,步骤包括设置兼容性和选择运行环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近上线的electron桌面端程序安装之后启动,老是出现报错“Uncaught Exception Error:The specified procedure could not be found”。

从现象上看是加载node文件出错了。

确定了几个方向,搜索了很多也没找到解决办法

因为用的electron版本稍旧,想到是不是因为和系统dll不兼容导致的。这么一想,就离成功不远了

于是,解决办法:

1.选择桌面图标,鼠标点击右键,选择“属性”

2.在属性页,选择标签“兼容性”

3.勾选“以兼容模式运行这个程序”

4.在兼容模式下拉框选择“windows7”或“Windows XP(Service Pack 3)”

5.不介意的话,可以勾选下面的“以管理员身份运行这个程序”

然后,就看到了期待已久的程序界面。

至此,大功告成。

补充一个解决办法

        package.json中检查含有c++扩展的依赖模块,查看它的模块版本,一般不兼容你所使用的node版本,需要给依赖降到兼容node的版本。
最快的方式:先确定你的node版本发布日期,比如node v14.21.1发布于2022年11月,然后上npmjs网站搜索该依赖,在[Versions]页直接定位到此2022年11月之前下载量最高的那个(精确日期去github上找),然后在你项目的package.json里修改版本即可。
强烈建议版本号前最好去掉"^"号,不然安装时可能会升级到你不想要的版本。(修改完版本号后别忘了npm先卸载再安装)

降级后或者修改完版本还不行,就要看看依赖的依赖了,可能会发现不一样的:
例如,有一个A模块要依赖node-addon-api:

// node_modules文件夹里A模块的package.json,并非你的项目package.json

"dependencies": {

"node-addon-api": "^8.1.0",

...

},

在npmjs网站中搜索该依赖,查看它的package.json

// node-addon-api 8.1.0的package.json

{

...,

"engines": {

"node": "^18 || ^20 || >= 21" // 发现它声明只兼容node 18、20、21及之后

}

}

  对于有node版本兼容声明的,去npmjs网站的[Versions]页查找能兼容你的node版本。比如v3.2.1声明兼容node 14,那就去找你A模块在哪个版本会依赖这个node-addon-api:^3.2.1(或者附近版本号), 最后在你的项目中将A模块切到那个版本。
  有些模块没有node版本声明怎么办?(比如上面的node-addon-api在以前没有声明),找离你node版本发布日期最接近的、下载量最高的,最后找到A模块在哪个版本依赖它们即可。

当你遇到`ImportError: DLL load failed while importing _rust: The specified procedure could not be found`这样的错误时,这通常意味着Python的Paramiko模块无法找到或加载某些动态链接库(DLL)文件,特别是与_cryptodome中的_rust相关的文件。 Paramiko是一个用于处理SSH协议的Python库,而_cryptodome是其依赖的一部分,特别是用于加密功能的部分可能使用了C语言编写的扩展,比如 Rust 编译的底层模块。 这个错误可能是由于以下原因: 1. **缺少依赖**:确保你的Python环境安装了所有必要的依赖包,包括 Paramiko 和 cryptodome。你可以尝试重新安装这些库,例如: ```bash pip install paramiko cryptography ``` 2. **路径问题**:如果库不是全局安装的,检查它们是否正确地添加到了系统的PATH环境变量中,以便Python能找到它们。 3. **编译问题**:如果你自己编译了cryptodome的_rust扩展,确认编译过程成功并且生成的DLL位于正确的目录下。 4. **操作系统兼容性**:确保你的Python版本和系统架构(如32位或64位)与提供的DLL文件匹配。 5. **第三方软件冲突**:有些防病毒软件或防火墙可能会阻止DLL文件的加载。试着暂时禁用它们看看是否解决问题。 6. **更新问题**:有时候旧版本的库可能不支持新版本的操作系统或Python。尝试更新到最新版的库看是否有改善。 为了解决这个问题,你需要根据具体情况进行排查。建议先从检查依赖和环境变量开始,如果问题依然存在,请提供更多的上下文信息,如操作系统的详细信息、Python版本等。然后我们才能更精确地定位问题。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子建莫敌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值