0

在节点 0.8.20 下

从这里编译节点插件

安装了 node-gyp、python 2.7.3 和 gcc。跑步时

node-gyp configure

发生错误。以下是错误输出:

gyp info it worked if it ends with ok
gyp info using node-gyp@0.8.5
gyp info using node@0.8.20 | linux | arm
gyp ERR! configure error
gyp ERR! stack Error: Command failed: execvp(): Permission denied
gyp ERR! stack
gyp ERR! stack     at ChildProcess.exithandler (child_process.js:540:15)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:99:17)
gyp ERR! stack     at maybeClose (child_process.js:638:16)
gyp ERR! stack     at Socket.ChildProcess.spawn.stdin (child_process.js:815:11)
gyp ERR! stack     at Socket.EventEmitter.emit (events.js:96:17)
gyp ERR! stack     at Socket._destroy.destroyed (net.js:358:10)
gyp ERR! stack     at process.startup.processNextTick.process._tickCallback (node.js:244:9)
gyp ERR! System Linux 3.6.11-7-ARCH+
gyp ERR! command "node" "/root/opt/node/bin/node-gyp" "configure"
gyp ERR! cwd /root/hello
gyp ERR! node -v v0.8.20
gyp ERR! node-gyp -v v0.8.5
gyp ERR! not ok

我在 /root/opt/python/bin/python 安装了 python,在 /root/opt/node/bin/node 安装了节点。但我已经设置了 PATH 环境的路径。

我找不到问题所在。

4

2 回答 2

0

解决了。

我想将 python 的路径设置为PYTHON_PATH而不是PYTHON. 但是我犯了一个错误,我将python的路径设置为环境变量PYTHON。如果PYTHON已设置,node-gyp则将其视为 python exective 并且永远不会从PATHs 中查找 python。

因此,当node-gyp运行 python 脚本时,它会将目录的路径传递给 execvp 系统调用的第一个参数。因此,它得到了权限被拒绝的错误。

于 2013-03-09T09:32:58.310 回答
0

我的解决方案是设置 npm python 参数:

npm config set python /usr/bin/python2.7
于 2014-03-11T07:23:08.703 回答