使用npm进行安装时,无法通过node-gyp rebuild找到python可执行文件

时间:2017-01-20 07:41:26

标签: node.js npm node-gyp

您好我在尝试使用sass安装先决条件时遇到以下错误:

$ npm install

> iltorb@1.0.13 install c:\gitrepo\PORT_BDL_BOOTSTRAP\node_modules\iltorb
> node-gyp rebuild

c:\gitrepo\PORT_BDL_BOOTSTRAP\node_modules\iltorb>if not defined npm_config_node_gyp (node "C:\Users\CTH\Desktop\bazar\nodejs\node\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )
  else (node "" rebuild )
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack     at failNoPython (C:\Users\CTH\Desktop\bazar\nodejs\node\node_modules\npm\node_modules\node-gyp\lib\configure.js:449:14)
gyp ERR! stack     at C:\Users\CTH\Desktop\bazar\nodejs\node\node_modules\npm\node_modules\node-gyp\lib\configure.js:404:11
gyp ERR! stack     at C:\Users\CTH\Desktop\bazar\nodejs\node\node_modules\npm\node_modules\graceful-fs\polyfills.js:264:29
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:82:15)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "c:\\Users\\CTH\\Desktop\\bazar\\nodejs\\node\\node.exe" "C:\\Users\\CTH\\Desktop\\bazar\\nodejs\\node\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd c:\gitrepo\PORT_BDL_BOOTSTRAP\node_modules\iltorb
gyp ERR! node -v v5.6.0
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
bootstrap@4.0.0-alpha.5 c:\gitrepo\PORT_BDL_BOOTSTRAP
`-- grunt-contrib-compress@1.4.1
  `-- lodash@4.17.4

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.0.17: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: iltorb@1.0.13 (node_modules\iltorb):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: iltorb@1.0.13 install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

我设置了PYTHON和PYTHONPATH变量,这些变量并没有改变。这个问题与node-gyp重建有关,因为我的python可执行文件可能无法正常工作。我使用python便携版本的Windows可能与它有关吗?

我也试过这个没有成功:

npm config set python C:\Users\CTH\Desktop\bazar\python\App\python.exe

2 个答案:

答案 0 :(得分:1)

所以在搜索了一段时间后我觉得我找到了一个解决方案:我的python版本是3.2.7但似乎node-gyp只接受低于3的版本所以我发现了python版本的可移植版本2.7.6.1似乎解决了我的问题。

要编译我必须使用此命令重建,因为似乎没有传递代理:

node-gyp rebuild --proxy = http://proxy:8080

答案 1 :(得分:0)

看起来这个问题始于v1.4.0,并且通过使iltorb成为"可选的依赖关系"在v1.4.1中得到了快速缓解。因此,使用v1.4.1,npm安装尝试编译,但即使它失败,它也会继续,忽略可选的依赖。

这种最新的行为稍微好一点,但仍然很烦人 - 慢并且在日志中喷出太多噪音。

可以说npm install --no-optional,这将解决问题,但这将适用于所有包,而不仅仅是这个包!你必须记得使用这个选项:-)这里有一个相关的npm问题:aws-cognito-identity-sdk.min.js

目前我只是坚持1.3.x:"grunt-contrib-compress": "~1.3.0",