在我的Windows电子版应用程序中(我认为它在引擎盖下使用了node.js或io.js?),我有以下代码行存在问题:
from array import *
from utilities import utilities
from algorithms import algorithms
def main():
utils = utilities()
alg = algorithms()
results = utils.load()
for line in results:
max_sub_array, max_sum = alg.simpleenumeration(line)
utils.printtofile("Simple Enumeration", max_sub_array, max_sum)
max_sub_array, max_sum = alg.betterenumeration(line)
utils.printtofile("Better Enumeration", max_sub_array, max_sum)
max_sub_array, max_sum = alg.divConMaxSub(line)
utils.printtofile("Divide and Conquer", max_sub_array, max_sum)
max_sub_array, max_sum = alg.linear_sub_array(line)
utils.printtofile("Linear sub array", max_sub_array, max_sum)
# print("--------------------")
main()
当我通过命令行运行应用程序时,此代码可以正常运行,例如var ipconfigOutput = child_process.execSync("ipconfig").toString();
。
但是,打包我的应用程序后,我遇到了问题。当我使用electron .
构建应用程序时,如果我从命令行调用构建的electron-packager
文件,则此代码可以正常工作。 然而,如果我通过在Windows资源管理器中双击构建的exe
来运行程序,则会出现以下错误:
exe
为什么会出现此错误,我应该如何更改上述代码?
我想这是因为stdout在通过命令行启动进程时的工作方式与通过Explorer启动时的工作方式有所不同,但我不能很好地理解IO,以便知道出了什么问题这里。
答案 0 :(得分:0)
我发现我可以通过将代码更改为
来获取代码 var ipconfigOutput = child_process.spawnSync("ipconfig").stdout.toString();
但是,我不确定为什么 spawnSync
现在有效,execSync
没有。如果有人可以评论,那就太棒了!