NodeJS-使用NPM安装时出错


197
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Windows\system32>npm install caress-server
npm http GET https://registry.npmjs.org/caress-server
npm http 304 https://registry.npmjs.org/caress-server
npm http GET https://registry.npmjs.org/jspack/0.0.1
npm http GET https://registry.npmjs.org/buffertools
npm http 304 https://registry.npmjs.org/jspack/0.0.1
npm http 304 https://registry.npmjs.org/buffertools

> buffertools@2.0.1 install C:\Windows\system32\node_modules\caress-server\node_
modules\buffertools
> node-gyp rebuild


C:\Windows\system32\node_modules\caress-server\node_modules\buffertools>node "G:
\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-
gyp.js" rebuild
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYT
HON env variable.
gyp ERR! stack     at failNoPython (G:\nodejs\node_modules\npm\node_modules\node
-gyp\lib\configure.js:101:14)
gyp ERR! stack     at G:\nodejs\node_modules\npm\node_modules\node-gyp\lib\confi
gure.js:64:11
gyp ERR! stack     at Object.oncomplete (fs.js:107:15)
gyp ERR! System Windows_NT 6.2.9200
gyp ERR! command "node" "G:\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\
bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Windows\system32\node_modules\caress-server\node_modules\buffert
ools
gyp ERR! node -v v0.10.25
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok
npm ERR! buffertools@2.0.1 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the buffertools@2.0.1 install script.
npm ERR! This is most likely a problem with the buffertools package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls buffertools
npm ERR! There is likely additional logging output above.

npm ERR! System Windows_NT 6.2.9200
npm ERR! command "G:\\nodejs\\\\node.exe" "G:\\nodejs\\node_modules\\npm\\bin\\n
pm-cli.js" "install" "caress-server"
npm ERR! cwd C:\Windows\system32
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\Windows\system32\npm-debug.log
npm ERR! not ok code 0

C:\Windows\system32>

我正在安装某个NodeJS脚本-Caress。但我并非无法做到。我正在使用Windows 8.1,任何人都可以告诉我我面临的问题是什么,为什么该安装无法正常工作。据我所知,buffertools依赖性似乎存在问题。不知道该如何解决?

如果我从github下载构建并将其放置在节点模块中,则似乎没有任何效果。当我尝试启动时,使用npm start或在实施期间。

G:\nodejs\node_modules\caress-server>npm install

G:\nodejs\node_modules\caress-server>npm start

> caress-server@0.1.1 start G:\nodejs\node_modules\caress-server
> node examples/server.js

   info  - socket.io started

module.js:340
    throw err;
          ^
Error: Cannot find module './build/Release/buffertools.node'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (G:\nodejs\node_modules\caress-server\node_modules\buf
fertools\buffertools.js:16:19)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

npm ERR! caress-server@0.1.1 start: `node examples/server.js`
npm ERR! Exit status 8
npm ERR!
npm ERR! Failed at the caress-server@0.1.1 start script.
npm ERR! This is most likely a problem with the caress-server package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node examples/server.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls caress-server
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.2.9200
npm ERR! command "G:\\nodejs\\\\node.exe" "G:\\nodejs\\node_modules\\npm\\bin\\n
pm-cli.js" "start"
npm ERR! cwd G:\nodejs\node_modules\caress-server
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     G:\nodejs\node_modules\caress-server\npm-debug.log
npm ERR! not ok code 0

G:\nodejs\node_modules\caress-server>

没有设置env变量。dsnt都可以。pastebin.com/jBXwi63a
Shaurya Chaudhuri

Answers:


365
如下所述,您可能不需要在Windows上安装VS,请检查一下

https://github.com/nodejs/node-gyp/issues/629#issuecomment-153196245

更新02/2016

一些npm插件需要node-gyp安装。

但是,node-gyp它具有自己的依赖项(来自github页):

在此处输入图片说明

更新于09/2016

如果您使用的是Windows,则现在可以node-gyp使用单个命令安装所有依赖项(注意:Windows PowerShell中以管理员身份运行):

 $ npm install --global --production windows-build-tools

然后安装软件包

 $ npm install --global node-gyp

更新06/2018

https://github.com/nodejs/node-gyp/issues/809#issuecomment-155019383

删除$ HOME / .node-gyp目录,然后重试。

请参阅此处的完整文档:node-gyp


因此,当我将其安装在Linux机器上时。我可以代替ms vc ++做什么?当我做了您提到的所有事情时,我就会明白这一点。- pastebin.com/LgJEKFFS
Shaurya乔杜里

适当的C / C ++编译器工具链,例如GCC:sudo apt-get install g++
Ilan Frumer 2014年

1
@IlanFrumer哦,我喜欢Linux的任何时间,但有时我必须给客户的服务器上安装应用程序..
斯波克

4
在Windows上安装不依赖于VS的C ++编译器是否可以解决此问题?这样的东西找不到吗?我很困惑。
jcollum 2015年

1
谢谢您的支持,为我工作。提示:在Windows中以管理员身份运行
MuriloMittmann

16

确保您具有运行所需的所有软件node-gyp

您可以node-gyp通过环境变量配置Visual Studio使用的版本,这样可以避免--msvs_version=2012每次执行npm安装时都必须设置属性。

例子:

  • GYP_MSVS_VERSION=2012为Visual Studio 2012 设置
  • GYP_MSVS_VERSION=2013e(“ e”代表免费的“ express Edition”)

有关完整列表,请参见-https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294

对于NodeJS的Windows用户来说,这仍然很痛苦,因为它假定您已安装Visual Studio的副本,并且许多最终用户永远都不会拥有此副本。因此,我正在游说Joyent,鼓励他们将Web套接字作为CORE节点的一部分包括在内,并可能将GNU gcc编译器作为NodeJS安装的一部分提供,以便我们可以永久解决此问题。

随时在以下位置添加您的投票:


4
我(最终)将它与VS 2015 Community Edition一起使用。我在Windows 10(64位)上。我在命令提示符下使用了“ npm config set msvs_version 2015 -g”(当然,在安装VS之后)。随着时间的流逝,大多数遇到此问题的人都建议使用VS2010,或者有时直到2013年,但我至少使用VS2015解决了当前的node-gyp问题。我还必须“ npm install -g sigmund”并从Github手动安装“ lru-cache”。最初的问题是安装“ Utf-8-Validate”,作为对Aurelia样本的依赖。
Mathieu Leblanc 2015年

10

我遇到了与错误有关的问题:

gyp ERR! configure error

gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.

这是我正在做的事情,终于奏效了。

免责声明:在Java,Linux世界等领域工作了多年之后,我才开始接触Node,Angular。

环境说明:Windows 8.1 64位;Cygwin;cygwin bash外壳

使用导致错误的命令:npm install -g karma

错误:gyp错误!配置错误gyp ERR!错误:找不到Python可执行文件“ python”,您可以设置PYT HON env变量。

发现:bash外壳上的“哪个python”清楚地显示了“ / usr / bin / python”。现在这很烦人!

:这仅适用于使用与我所拥有的环境类似的环境,即使用cygwin和bash shell。希望它对其他环境也有帮助,但请记住,您的茶水壶可能看起来与我的有所不同。

  1. 首先,需要使用python可执行文件的显式Windows路径而不是cygwin使用的类root路径(/ usr / bin)来在.bashrc中设置$ PYTHON shell env变量。
  2. 其次,这个过程经历了很多次尝试/错误,这就是陷阱!Cygwin将python安装在版本为/ usr / bin(实际上是Windows上/ bin的镜像)下的版本,即(在我的系统中)/usr/bin/python2.7.exe,然后添加链接/ usr / bin / python-> python2.7.exe。问题是gyp无法跟随该链接,并不断给出令人讨厌的错误,即即使您可以从shell命令行中找到它,也无法找到python。
  3. 有了以上背景,现在将以下行添加到您的.bashrc中

export PYTHON =“ C:/cygwin64/bin/python2.7.exe(或系统上的任何版本)”

  1. 现在从您的主目录中获取.bashrc(在cygwin上)->'source .bashrc'

您现在应该很好,而gyp将找到python可执行文件。

我希望这可以帮助在相同或相似问题上绊倒的人。


这就是解决我在Windows上使用GitBash 2.6.3的问题的原因
Scott

3

应该能够为Windows 提供Chocolatey的所有node-gyp依赖项

choco install python2
choco install visualstudioexpress2013windowsdesktop

2

设置JavaScript环境

1.安装Node.js

在NodeJs网站上下载安装程序。您可以下载最新的V6

2.更新Npm

Npm与Node.js一起安装。所以不用担心

3.安装Anaconda

Anaconda是由Python支持的领先的开放数据科学平台。Anaconda的开源版本是Python的高性能发行版。它可以帮助您管理python依赖项。如果您想使用它,可以使用它来进一步创建不同的python环境。

Node-gyp仅支持> = Python 2.7和<Python 3.0

所以只要安装2.7版本

4.安装Node-gyp

您可以安装  npm

$ npm install -g node-gyp

您还需要安装:

  • 在Windows上:

    • 选项1:使用Microsoft的Windows-Build-tools  通过  npm install --global --production windows-build-tools 提升的PowerShell或CMD.exe(以管理员身份运行)安装所有必需的工具和配置  。

    • 选项2:手动安装工具和配置:

    • Visual C ++构建环境:

      • 选项1: 使用“  默认安装”  选项安装  Visual C ++生成工具
      • 选项2:安装  Visual Studio 2015  (或修改现有安装),并 在安装过程中选择  Visual C ++的通用工具。这也适用于免费的Community和Express for Desktop版本。

      💡[仅Windows Vista / 7]需要  .NET Framework 4.5.1

    • 启动cmd, npm config set msvs_version 2015

    如果上述步骤对您不起作用,请访问  Microsoft的Windows Node.js指南以  获取其他提示。

如果安装了多个Python版本,则可以node-gyp 通过设置'--python'变量来确定使用哪个Python版本  :

$ node-gyp --python C:/Anaconda2/python.exe

如果  node-gyp 通过调用,  npm 并且  您安装了多个版本的Python,则可以将  npm'python'配置键设置为适当的值:

$ npm config set python C:/Anaconda2/python.exe

Node.js和npm的未来更新

从其官方网站下载安装程序并直接安装。安装程序将自动帮助您删除旧文件。

npm update npm

未来的Python更新

conda update --all


1

对于Cygwin用户:

npm开箱即用的Cygwin安装上使用的python问题node-gyp是由于代码中的不完整检查而产生误导性错误../npm/node_modules/node-gyp/lib/configure.js

这是由于Cygwin如何处理符号链接。在开箱即用的安装中,这样做不正确。因此,上述代码中的错误消息会引起误解,因为它抱怨PYTHON路径,而不是python.exe文件本身(或链接)的存在。

有(至少)两种方法可以解决此问题。

  1. 安装Cygwin软件包cygutils-extra并使用winln
  2. 在管理模式下使用本机Windows CMD。

对于(1),您可以通过执行以下步骤从Cygwin Shell中创建适当的符号链接:

# To make the Cygwin environment treat Windows links properly: 
# Alternatively add this to your `.bashrc` for permanent use.
export CYGWIN=winsymlinks:nativestrict

# Install Cygwin package containing "winln"
apt-cyg install cygutils-extra

# Make a proper Windows sym-link:
cd /cygdrive/c/cygwin64/bin/
winln.exe -s python2.7.exe python.exe

# Add PYTHON as a native Windows system wide variable (HKLM) 
setx /M PYTHON "C:\cygwin64\bin\python"

(也假设您以Admin身份运行Cygwin Shell。)apt-cyg建议使用using ,并且可以在github上以各种形式找到它。


对于(2)开箱即用的Cygwin用户,分辨率为:

# Open a native Windows CMD in Administrator mode and:
cd C:\cygwin64\bin\
mklink python.exe python2.7.exe

结果应如下所示:

C:\cygwin64\bin>ls -al python*
lrwxrwxrwx 1 xxx            xxx   13 Jun  2  2015 python -> python2.7.exe
lrwxrwxrwx 1 Administrators xxx   13 Aug 24 17:28 python.exe -> python2.7.exe
lrwxrwxrwx 1 xxx            xxx   13 Jun  2  2015 python2 -> python2.7.exe
-rwxr-xr-x 1 xxx            xxx 9235 Jun  2  2015 python2.7.exe

1

对于窗户

检查系统变量中的python路径。npm插件需要安装node-gyp。

打开具有管理员权限的命令提示符,然后运行以下命令。

npm install --global --production Windows构建工具

npm install --global node-gyp


0

糟糕!配置错误gyp ERR!堆栈错误:找不到Python可执行文件“ python”,您可以设置PYT HON env变量。

这意味着Python环境。在我的情况下,变量应指向可执行的python文件: SET PYTHON=C:\work\_env\Python27\python.exe


0

对我来说解决方案是:

rm -rf  ~/.node_gyp and
sudo npm install -g node-gyp@3.4.0
cd /usr/local/lib sudo ln -s ../../lib/libSystem.B.dylib libgcc_s.10.5.dylib 
brew install gcc
npm install


0

这个问题已经得到了回答,但是在我的情况下(基于高山Linux的操作系统),这些问题不起作用,因此也许这对其他人有所帮助。

我也遇到同样的错误

gyp ERR! configure error 
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.

因此,如果您使用的是Dockerfile或将其安装在OS中,则只需添加一行即可解决

apk add --no-cache python nodejs

在Ubuntu

sudo apt-get install python3.6

注意:节点版本:8



0

修复了将Node从v12.8.1降级到v11.15.0并成功安装所有内容的问题

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.