Node.js Blender命令行的繁殖?

Node.js Blender命令行的繁殖?,node.js,command-line,blender,spawn,Node.js,Command Line,Blender,Spawn,我需要blender命令行访问,尽管spawn,但始终会遇到enoint错误,很难确定缺少什么。在示例应用程序中传递的命令行在终端中工作 下面是有关环境和我正在使用的示例脚本的一些详细信息 环境(OSX El Capitan) 已安装搅拌机2.76b,配备: brew安装Caskroom/cask/blender 然后将别名添加到bash_配置文件以进行终端访问: alias blender=“/Applications/blender/blender.app/Contents/MacOS/

我需要blender命令行访问,尽管
spawn
,但始终会遇到
enoint
错误,很难确定缺少什么。在示例应用程序中传递的命令行在终端中工作

下面是有关环境和我正在使用的示例脚本的一些详细信息


环境(OSX El Capitan)

  • 已安装搅拌机2.76b,配备:

    brew安装Caskroom/cask/blender

  • 然后将
    别名
    添加到
    bash_配置文件
    以进行终端访问:

    alias blender=“/Applications/blender/blender.app/Contents/MacOS/blender”

  • 测试代码

    #!/usr/bin/env node
    var child_process = require('child_process');
    var arguments = [
            '-b',
            'recipe.blend',
            '-o', 'test-#',
            '-f', 0
    ];
    console.log("values: ", arguments);
    var child = child_process.spawn('blender', arguments);
    
    child.stdout.on('data', function(data) {
        console.log('data out: ', data.toString());
    });
    child.stderr.on('data', function(data) {
        console.error('error out: ',data);
    });
    child.on('close', function(code) {
        console.log('closing code: ' + code);
    });
    
    // Raw command-line for terminal. (PASS)
    // blender -b recipe.blend -o test-# -f 0
    

    尝试更改子进程。spawn('blender',参数);行到child_process.spawn('/Applications/blender/blender.app/Contents/MacOS/blender',arguments);。NodeJS不会使用bash别名,因此除非blender可执行文件在其路径中,否则它将无法找到可执行文件并抛出enoint

    另一个选项是调整节点的路径,以包括搅拌机可执行文件的路径。您还可以将中搅拌机可执行文件的完整路径作为环境变量传递

    干杯