NodeJS - Erro ao instalar com o 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>

Estou instalando um determinado script do NodeJS - Caress . Mas eu não sou incapaz. Estou usando o Windows 8.1, alguém pode me dizer qual é o problema que estou enfrentando e por que essa instalação não está funcionando. Parece haver um problema com a dependência do buffertools, isso é o que eu posso pensar. Não sei como consertar isso?

Se eu baixar o build do github e colocá-lo em node-modules, nada parece funcionar. quando tento iniciar, usando o npm start ou durante a implementação.

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>

a variável env não foi definida. O dsnt também trabalha com isso. pastebin.com/jBXwi63a
Shaurya Chaudhuri

Respostas:


365
Como comentado abaixo, talvez você não precise instalar o VS no Windows, verifique isso

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

ATUALIZADO 02/2016

Alguns plugins npm precisam node-gypser instalados.

No entanto, node-gyppossui dependências próprias ( na página do github ):

insira a descrição da imagem aqui

ATUALIZADO 09/2016

Se você estiver usando o Windows, poderá instalar todas as node-gypdependências com um único comando (NOTA: Executar como administrador no Windows PowerShell):

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

e instale o pacote

 $ npm install --global node-gyp

ATUALIZADO 06/2018

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

Exclua seu diretório $ HOME / .node-gyp e tente novamente.

Consulte a documentação completa aqui: node-gyp


Então, quando eu instalá-lo em uma caixa Linux. O que faço no lugar do ms vc ++? E eu entendo isso quando fiz todas as coisas que você mencionou. - pastebin.com/LgJEKFFS
Shaurya Chaudhuri

A adequada C / C ++ compilador toolchain, como GCC:sudo apt-get install g++
Ilan Frumer

1
@IlanFrumer oh, eu preferiria o Linux a qualquer momento, mas às vezes tenho que instalar aplicativos no servidor de um cliente ..
Spock

4
Isso não seria resolvido com um compilador C ++ não dependente do VS instalado no Windows? É algo impossível de encontrar? Estou confuso.
jcollum

1
Obrigado pelo apoio pessoal, funciona para mim. Apenas uma dica: execute como administrador no Windows #
MuriloMittmann 9/17/17

16

Verifique se você possui todo o software necessário para executar node-gyp:

Você pode configurar a versão do Visual Studio usada por node-gypmeio de uma variável de ambiente para evitar a necessidade de definir a --msvs_version=2012propriedade sempre que instalar um npm.

Exemplos:

  • definido GYP_MSVS_VERSION=2012para o Visual Studio 2012
  • set GYP_MSVS_VERSION=2013e(o 'e' significa GRATUITO 'edição expressa')

Para obter a lista completa, consulte - https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294

Isso ainda é doloroso para os usuários do NodeJS do Windows, pois pressupõe que você tenha uma cópia do Visual Studio instalada e muitos usuários finais nunca terão isso. Portanto, estou pressionando a Joyent a incentivá-los a incluir soquetes da Web como parte do nó CORE e também a enviar um compilador GNU gcc como parte da instalação do NodeJS para que possamos resolver permanentemente esse problema.

Sinta-se livre para adicionar seu voto em:


4
Acabei (finalmente) trabalhando com o VS 2015 Community edition. Estou na janela 10, 64 bits. Eu usei "npm config set msvs_version 2015 -g" no prompt de comando (após a instalação do VS, é claro). A maioria das pessoas que enfrentam esse problema ao longo do tempo sugeriu o VS2010, ou às vezes até 2013, mas resolvi pelo menos meu atual problema de nó-gyp com o VS2015. Eu tive que "npm install -g sigmund" e instalar manualmente "lru-cache" no Github também. O problema original era ter o "Utf-8-Validate" instalado, como uma dependência de uma amostra de Aurelia.
Mathieu Leblanc

10

Encontrei o problema com o erro:

gyp ERR! configure error

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

Aqui está o que eu estava fazendo e o que finalmente funcionou.

Isenção de responsabilidade : Estou apenas colocando minhas mãos no Node, Angular, depois de muitos anos no mundo Java, Linux, entre outros ...

Descrição do ambiente : Windows 8.1 de 64 bits; Cygwin; cygwin bash shell

Comando usado que levou ao erro : npm install -g karma

Erro : gyp ERR! configurar erro gyp ERR! Erro na pilha: Não é possível encontrar o executável Python "python", você pode definir a variável env PYT HON.

Descoberta : 'qual python' no shell bash mostra claramente '/ usr / bin / python'. Agora isso é chato!

Solução : Isso é aplicável apenas àqueles que usam o ambiente semelhante ao que eu tenho, ou seja, que usam o cygwin e o bash shell. Espero que ajude também em outros ambientes, mas lembre-se de que sua chaleira pode parecer um pouco diferente da minha.

  1. Primeiramente, é necessário definir a variável env $ PYTHON shell no .bashrc usando o caminho explícito do windows para o executável python e não o caminho raiz tipo unix (/ usr / bin) usado pelo cygwin.
  2. Em segundo lugar, e este levou muitas tentativas / erros e aqui está a dica! O Cygwin instala o python em / usr / bin (que é realmente um espelho do / bin no windows) com a versão, ou seja, (no meu sistema) /usr/bin/python2.7.exe e depois adiciona um link / usr / bin / python -> python2.7.exe. O problema é que o gyp não pode seguir esse link e continua dando o erro irritante de que ele não consegue encontrar o python, embora você possa encontrá-lo bem na linha de comando do shell.
  3. Com o fundo acima, adicione agora a seguinte linha ao seu .bashrc

exportar PYTHON = "C: /cygwin64/bin/python2.7.exe (ou qualquer que seja a versão do seu sistema)"

  1. Agora pegue seu .bashrc no diretório inicial (no cygwin) -> 'source .bashrc'

Você deve estar bem agora e o gyp encontrará o executável do python.

Espero que isso ajude alguém a tropeçar no mesmo problema ou em um problema semelhante.


Isto é o que resolveu o meu problema usando o GitBash 2.6.3 no Windows
Scott Offen

3

deve poder obter todas as dependências do gyp do nó com chocolatey para Windows

choco install python2
choco install visualstudioexpress2013windowsdesktop

2

Configuração do ambiente JavaScript

1. Instale o Node.js

Faça o download do instalador no site do NodeJs. Você pode baixar o V6 mais recente

2. Atualizar Npm

O Npm é instalado junto com o Node.js. Então não se preocupe.

3. Instale o Anaconda

O Anaconda é a principal plataforma de ciência de dados abertos, alimentada por Python. A versão de código aberto do Anaconda é uma distribuição de alto desempenho do Python. Pode ajudá-lo a gerenciar sua dependência de python. Você pode usá-lo para criar um ambiente python diferente no futuro, se quiser tocar nele.

O Node-gyp suporta apenas> = Python 2.7 e <Python 3.0

Então, basta instalar a versão 2.7

4. Instale o Node-gyp

Você pode instalar com  npm:

$ npm install -g node-gyp

Você também precisará instalar:

  • No Windows:

    • Opção 1: Instale todas as ferramentas e configurações necessárias usando as ferramentas de construção de janelas da Microsoft   usando  npm install --global --production windows-build-tools um PowerShell ou CMD.exe elevado (executado como Administrador).

    • Opção 2: instalar ferramentas e configuração manualmente:

    • Ambiente de compilação do Visual C ++:

      • Opção 1: Instale as  Ferramentas de Compilação do Visual C ++  usando a   opção Instalação Padrão .
      • Opção 2: Instale o  Visual Studio 2015  (ou modifique uma instalação existente) e selecione  Ferramentas Comuns para o Visual C ++  durante a instalação. Isso também funciona com as edições gratuitas Community e Express for Desktop.

      💡 [Somente Windows Vista / 7] requer  .NET Framework 4.5.1

    • Iniciar cmd, npm config set msvs_version 2015

    Se as etapas acima não funcionaram para você, visite  as Diretrizes do Microsoft Node.js. para Windows  para obter dicas adicionais.

Se você tiver várias versões do Python instaladas, poderá identificar qual versão do Python node-gyp  usa configurando a variável '--python':

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

Se  node-gyp for chamado assim  npm e  você tiver várias versões do Python instaladas, poderá definir npm a chave de 's' python 'com o valor apropriado:

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

Atualização futura para Node.js e npm

Baixe o instalador do site oficial e instale-o diretamente. O instalador o ajudará automaticamente a remover arquivos antigos.

npm update npm

Atualização futura para Python

conda update --all


1

Para usuários do Cygwin:

O problema do python com o uso npmem uma instalação Cygwin pronta para uso é que node-gypestá ocorrendo um erro enganoso devido à verificação incompleta do ../npm/node_modules/node-gyp/lib/configure.jscódigo.

Isso se deve ao modo como Cygwin trata os links simbólicos. Não faz isso corretamente em uma instalação pronta para uso. Portanto, as mensagens de erro do código acima se tornam enganosas, pois reclamam do PYTHONcaminho e não da existência do python.exe(ou link do) arquivo em si.

Existem (pelo menos) 2 maneiras de resolver isso.

  1. Instalando o pacote Cygwin cygutils-extrae use winln.
  2. Use o Windows CMD nativo no modo Admin.

Para ( 1 ), você pode criar um link simbólico adequado a partir do shell Cygwin, executando estas etapas:

# 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"

(Supondo também que você esteja executando o shell Cygwin como administrador.) O uso apt-cygé recomendado e pode ser encontrado de várias formas no github.


Para ( 2 ) a resolução para usuários Cygwin prontos para o uso é a seguinte:

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

O resultado deve ficar assim:

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

Para Windows

Verifique o caminho do python na variável do sistema. Os plug-ins do npm precisam do node-gyp para serem instalados.

abra o prompt de comando com direitos de administrador e execute o seguinte comando.

npm install --global --product windows-build-tools

npm install --global node-gyp


0

gyp ERR! configurar erro gyp ERR! Erro na pilha: Não é possível encontrar o executável Python "python", você pode definir a variável env PYT HON.

Isso significa o ambiente Python. A variável deve apontar para o arquivo python executável, no meu caso: SET PYTHON=C:\work\_env\Python27\python.exe


0

para mim a solução foi:

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

A pergunta já está respondida, mas elas não estavam funcionando no meu caso, que é um sistema operacional alpino baseado em Linux, então talvez isso ajude outra pessoa.

Eu também estava recebendo o mesmo erro

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

Portanto, corrija por uma única linha, adicione-a se estiver trabalhando no Dockerfile ou instale-o no SO

apk add --no-cache python nodejs

no ubuntu

sudo apt-get install python3.6

Nota: Versão do nó: 8


0

instale o node-gyp e o compilador c ++ (gcc-c ++).


Você pode explicar como essa é uma resposta melhor do que as outras 11 já aqui?
Stephen Rauch

Oi Stephan, com certeza não é o melhor, mas sim em etapas mínimas que funcionaram para mim.
Brajesh jaishwal

0

Corrigido com o nó de downgrade da v12.8.1 para a v11.15.0 e tudo instalado com sucesso

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.