请不要弄错了
/Application/test.app/Contents/Resources/app.asar/remderer.js:226 Error: python: can't open file 'visitor.py': [Error 2] No such file or directory
是
remderer.js公司
但另一个地方是
渲染器.js
,所以请确保不是你的错别字。如果是,请更正。
事实上
electron-builder
是
绑定了您的python文件,但是由于
asar
python-shell
找不到您的python文件,因此导致错误。
如何修复
禁用asar
disable asar
package.json
收件人:
{
...
"build": {
"appId": "com.example.app",
...
"asar": false,
renderer.js
蟒蛇壳
import {PythonShell} from 'python-shell';
PythonShell.run('visitor.py', null, function (err) {
if (err) throw err;
console.log('finished');
});
现在应该可以工作了。
内部逻辑
禁用asar后,所有相关文件路径不包含asar,变成:
-
/Application/test.app/Contents/Resources/app/visitor.py
-
/Application/test.app/Contents/Resources/app/renderer.js
.app
文件结构为:
|_ test.app
|_ Contents
|_ Resources
|_ app
|_ styles.css
|_ main.js
|_ package.json
|_ dist/
|_ node_modules/
|_ renderer.js
|_ visitor.py
|_ download.py
...
unpack
:
改变你
{
...
"build": {
"appId": "com.example.app",
...
"asar": true,
"asarUnpack": [
"visitor.py",
"download.py"
"renderer.js"
],
包装好的
.应用程序
文件结构为:
|_ test.app
|_ Contents
|_ Resources
|_ app.asar # a single compressed binary file
|_ app.asar.unpacked # a folder/directory, contain unpacked origin files
|_ visitor.py
|_ download.py
|_ renderer.js
你的
,
也许不需要改变
,应该可以工作。
asarUnpack
请参考官方文件:
Overridable per Platform Options
PS:其他asar和相关尝试,可以参考我的中文帖子:
ã已解å³ãmacä¸PyInstalleræå
åçäºè¿å¶æä»¶å¨electron-builderæå
åappä¸æäºæ æ³éè¿child_processçexecFileè¿è¡