Electron NPM 应用程序找不到 file:///eel.js,但 python 可以

Posted

技术标签:

【中文标题】Electron NPM 应用程序找不到 file:///eel.js,但 python 可以【英文标题】:Electron NPM application cannot find file:///eel.js, but python can 【发布时间】:2020-11-27 06:01:48 【问题描述】:

我正在使用 Python、JS、html 和 CSS 构建一个桌面应用程序。我正在使用鳗鱼连接python。当我通过 python 终端启动我的桌面应用程序时,它运行良好。

但是,当我通过命令行通过电子启动应用程序时:

$npm start

桌面应用程序已加载,但并未在任何 python 后端上执行,检查器中的此错误很好地解释了这一点:

Failed to load resource: net::ERR_FILE_NOT_FOUND eel.js:1

我不确定是什么原因造成的,过去 8 小时我一直在测试,但无济于事。

我知道您可能需要更多信息,但我一直在检查所有内容,从文件结构(即 Web 文件夹外部的 __.py)到插入 <script type="text/javascript" src="/eel.js"></script>,因此请在下方评论您的具体要求,包括所有可能的原因是一个非常大的问题。我将在此问题的编辑中包含与此问题相关的任何内容以及将来遇到类似问题的任何人的最终答案。

【问题讨论】:

您使用的 URL 是标题中显示的 file:///eel.js 还是问题本身中显示的 /eel.js?后者听起来更可能是正确的(至少从我见过的鳗鱼例子来看)。 我在文件中使用 /eel.js。 “file:///eel.js”是应用程序启动后出现在检查器中的内容。 尝试相对寻址,如eeldir/eel.js,检查文件权限,检查字母大小写 它找到了文件但随后调用了一堆错误,我已将 eel.js 文件替换为在线变体和原始文件,问题包括:未捕获的类型错误:无法读取属性“长度”未定义 (eel.js:70) 在 Object._mock_py_functions (eel.js:70) 在 Object._init (eel.js:129) 在 eel.js:173 @V.Volkov 请注意,通过 python 启动时它工作得非常好 【参考方案1】:

无需从 npm 运行。 eel.js 只是虚拟 javascript,不要理会它。 把它放在你的 your_main.py 文件中

import eel.browsers

指定您的电子浏览器

eel.browsers.set_path('electron', 'node_modules/electron/dist/electron')

然后使用它

eel.start('main.html', mode='electron')

要运行,从 python 调用:

python your_main.py

【讨论】:

嗨,我现在也在做同样的事情。我有疑问,如果我们分发这个电子应用程序,那么如何在应用程序中包含 python?

以上是关于Electron NPM 应用程序找不到 file:///eel.js,但 python 可以的主要内容,如果未能解决你的问题,请参考以下文章

加载资源失败(找不到文件) Electron js 无法导入或导出

电子应用程序找不到 sqlite3 模块

在 Electron + React + Webpack 设置中找不到模块“电子”

Electron 应用程序中的“找不到模块 jquery”

Electron VueJS - 构建错误 - 无法注册应用程序协议。在 app.asar 中找不到 ENOENT、\dist_electron\bundled

Summernote 和 Electron:未捕获的错误:找不到模块“jquery”