在Mac M1上使用Python调用js代码,使用的库是PyExecJS,遇到了两个奇怪的问题:
问题一 ProcessExitedWithNonZeroStatus: (1,'The operation couldn't be completed)
raise ProcessExitedWithNonZeroStatus(status=status, stdout=stdoutdata, stderr=stderrdata) execs._exceptions.ProcessExitedWithNonZeroStatus: (1,
'The operation couldn't be completed. Unable to locate a Jal
va Runtime. Inplease visit http://www.java.com for information on installing Java. Inin!)
该问题,首先检查是否安装java环境,这里注意要安装jdk8的版本(它有jjs)
Mac m1 版本的jdk8 参考如下链接:
https://zhuanlan.zhihu.com/p/618157528?utm_id=0
问题二 exceptions.ProcessExitedWithNonZeroStatus: (101
raise ProcessExitedWithNonZeroStatus(status=status, stdout=stdoutdata, stderr=stderrdata)
execjs._exceptions.ProcessExitedWithNonZeroStatus: (101, '', "/var/folders/2m/70fjr7b53fz2zql2dmrrz5_00000gn/T/execjswc0u0vh4.js:1424:48 Expected , but found =\n\t stringify: function (wordArray, urlSafe=true) {\n\t ^\n/var/folders/2m/70fjr7b53fz2zql2dmrrz5_00000gn/T/execjswc0u0vh4.js:1473:14 Expected ) but found :\n\t parse: function (base64Str, urlSafe=true) {\n\t
该问题的意思是js的代码有问题,在1424行。 想了很久也没看出js代码哪里有问题,因为js本身是正常的,之前也在其他环境执行成功过。
解决办法:将该行数的js中的函数参数的默认值去掉
即将 stringify: function (wordArray, urlSafe=true) 改写为
stringify: function (wordArray, urlSafe)
网友评论