在节点0.8.20下
从here
编译节点插件安装了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环境设定了道路。
我找不到什么错误。
答案 0 :(得分:0)
解决了它。
我想将python的路径设置为PYTHON_PATH
而不是PYTHON
。但我犯了一个错误,我将python的路径设置为环境变量PYTHON
。如果设置了PYTHON
,node-gyp
会将其视为python执行,并且永远不会从PATH
s中查找python。
所以当node-gyp
运行python脚本时,它会将目录路径传递给execvp系统调用的第一个参数。因此,它获得了权限被拒绝的错误。
答案 1 :(得分:0)
我的解决方案是设置npm python参数:
npm config set python /usr/bin/python2.7