gpt4 book ai didi

Node.js - 子进程抛出错误,但在 OS X 下可以在终端中执行命令

转载 作者:太空宇宙 更新时间:2023-11-04 00:12:25 24 4
gpt4 key购买 nike

我正在为编辑器 Atom 开发一个包。该软件包包含一个仅具有 CLI 的 Python 程序 GUI。通过使用我的包,用户只需单击一个图标。功能在Windows下测试良好,运行良好。现在我正在对 OS X 进行所有测试,但麻烦开始了。

在测试过程中,我发现了一些错误,通过检查操作系统并附加参数修复了这些错误。

我正在使用 child_process 和 execexecSync

console.log("cmd "+cmd);  //just for whether cmd is correct
child_process.exec(cmd, (error, stdout, stderr) => {
if (error) {
//error handling
console.log("error.msg "+error.message;
}else{
console.log("stdout " +stdout); //just for testing
console.log("stderr " +stderr); //just for testing
}
}

我的问题是命令执行正确 - python 程序生成文件但进程抛出错误。我还在终端中测试了该命令,没有出现错误。在 Windows 下我没有遇到问题。

现在有关错误对象的更多信息:

  1. error.message = 命令失败:python_command/Users/jDoe/Document/test/test.md
  2. 错误代码 = 119
  3. 错误.killed = false
  4. 错误.stack

    Error: 
    Command failed: python_command /Users/jDoe/Document/test/test.md
    at ChildProcess.exithandler (child_process.js:223:12)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:885:16)
    at Process.ChildProcess._handle.onexit
    (internal/child_process.js:226:5)"

python 程序无法读取语言环境并返回该值为 None,但我需要编码。

有什么想法吗?

最佳答案

我读取区域设置并将它们传递给进程。

var env = Object.create( process.env );
env.LANG=`en_US.UTF-8`; // just for testing
iExec(cmd, {env: env, cwd: path},
(error, stdout, stderr) => {
if(error){
// do error handling
}
});

现在一切正常。

关于Node.js - 子进程抛出错误,但在 OS X 下可以在终端中执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48861844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com