【问题标题】:Node.js spawn of Blender command-line?Blender 命令行的 Node.js 衍生品?
【发布时间】:2016-01-05 09:30:38
【问题描述】:

我需要通过 spawn 访问搅拌机命令行,但一直遇到 ENOENT 错误,并且很难确定缺少的内容。示例应用程序中传递的命令行在终端中运行。

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


环境(OSX El Capitan)

  1. 安装了 Blender 2.76b :

    brew install Caskroom/cask/blender

  2. 然后将alias添加到bash_profile进行终端访问:

    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

【问题讨论】:

    标签: node.js command-line blender spawn


    【解决方案1】:

    尝试改变 child_process.spawn('blender', arguments);行到 child_process.spawn('/Applications/blender/Blender.app/Contents/MacOS/blender', arguments);。 NodeJS 不会使用您的 bash 别名,因此除非 blender 可执行文件位于其 PATH 中,否则它将无法找到可执行文件并抛出 ENOENT。

    另一个选项是调整 Node 的 PATH 以包含 blender 可执行文件的路径。您还可以将完整路径作为环境变量传递给搅拌机可执行文件。

    干杯!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-08
      • 2011-04-16
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      • 1970-01-01
      • 2018-12-08
      • 2012-05-26
      相关资源
      最近更新 更多