NodeJS - Errore durante l'installazione con 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>

Sto installando un certo script NodeJS - Caress . Ma non sono in grado di farlo. Sto usando Windows 8.1, qualcuno può dirmi qual è il problema che sto affrontando e perché questa installazione non funziona. Sembra che ci sia un problema con la dipendenza da buffertools, per quello che posso pensare. Non sai come forse risolvere questo problema?

Se scarico la build da github e la inserisco in moduli-nodo, nulla sembra funzionare. quando provo ad iniziare, usando npm start o durante l'implementazione.

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>

la variabile env non era impostata. dsnt funziona anche con quello. pastebin.com/jBXwi63a
Shaurya Chaudhuri,

Risposte:


365
Come commentato di seguito, potrebbe non essere necessario installare VS su Windows, dai un'occhiata

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

AGGIORNATO 02/2016

Alcuni plugin npm devono node-gypessere installati.

Tuttavia, node-gypha le sue dipendenze ( dalla pagina github ):

inserisci qui la descrizione dell'immagine

AGGIORNATO IL 09/2016

Se stai usando Windows ora puoi installare tutte le node-gypdipendenze con un singolo comando (NOTA: Esegui come amministratore in Windows PowerShell):

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

e quindi installare il pacchetto

 $ npm install --global node-gyp

AGGIORNATO il 06/2018

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

Elimina la tua directory $ HOME / .node-gyp e riprova.

Vedi la documentazione completa qui: node-gyp


Quindi quando lo installo su un box Linux. Cosa devo fare al posto di ms vc ++? E ottengo questo quando ho fatto tutte le cose che hai menzionato. - pastebin.com/LgJEKFFS
Shaurya Chaudhuri,

Una vera e propria toolchain di compilatore C / C ++, come GCC:sudo apt-get install g++
Ilan Frumer,

1
@IlanFrumer oh preferirei Linux in qualsiasi momento, ma a volte devo installare applicazioni sul server di un cliente ..
Spock

4
Questo non sarebbe risolto avendo un compilatore C ++ non-VS-dipendente installato su Windows? È impossibile trovare una cosa del genere? Non ho capito bene.
jcollum,

1
Grazie per il supporto ragazzi, lavora per me. Solo un consiglio: esegui come admin in windows
MuriloMittmann

16

Assicurati di avere tutto il software necessario per eseguire node-gyp:

È possibile configurare la versione di Visual Studio utilizzata da node-gypuna variabile di ambiente in modo da evitare di dover impostare la --msvs_version=2012proprietà ogni volta che si esegue un'installazione npm.

Esempi:

  • impostato GYP_MSVS_VERSION=2012per Visual Studio 2012
  • set GYP_MSVS_VERSION=2013e(la 'e' sta per FREE 'express edition')

Per l'elenco completo vedere - https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294

Questo è ancora doloroso per gli utenti Windows di NodeJS poiché presuppone che tu abbia installato una copia di Visual Studio e che molti utenti finali non lo avranno mai. Quindi sto facendo pressioni su Joyent per incoraggiarli a includere socket Web come parte del nodo CORE e anche per spedire un compilatore gcc GNU come parte dell'installazione di NodeJS in modo da poter risolvere definitivamente questo problema.

Sentiti libero di aggiungere il tuo voto a:


4
Ho appena (finalmente) lavorato con VS 2015 Community Edition. Sono su Window 10, 64 bit. Ho usato "npm config set msvs_version 2015 -g" nel prompt dei comandi (dopo l'installazione di VS, ovviamente). La maggior parte delle persone che hanno riscontrato questo problema nel tempo hanno suggerito VS2010, o talvolta fino al 2013, ma ho risolto almeno il mio attuale problema nodo-gyp con VS2015. Ho dovuto "npm install -g sigmund" e anche installare manualmente "lru-cache" da Github. Il problema originale era l'installazione di "Utf-8-Validate", come dipendenza di un campione Aurelia.
Mathieu Leblanc,

10

Ho riscontrato il problema con l'errore:

gyp ERR! configure error

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

Ecco cosa stavo facendo e cosa alla fine ha funzionato.

Disclaimer : sto solo mettendo le mani su Node, Angular dopo molti anni nel mondo Java, Linux tra gli altri ...

Descrizione dell'ambiente : Windows 8.1 a 64 bit; Cygwin; Cygwin Bash Shell

Comando utilizzato che ha portato all'errore : npm install -g karma

Errore : gyp ERR! configura errore gyp ERR! stack error: Impossibile trovare l'eseguibile "python" di Python, puoi impostare la variabile env PYT HON.

Scoperta : 'quale python' sulla shell bash mostra chiaramente '/ usr / bin / python'. Questo è fastidioso!

Soluzione : questo è applicabile solo a coloro che usano l'ambiente in modo simile a quello che ho, cioè usando cygwin e bash shell. Spero che sia d'aiuto anche in altri ambienti, ma tieni presente che il tuo bollitore per tè può apparire un po 'diverso dal mio.

  1. In primo luogo, è necessario impostare la variabile env della shell $ PYTHON in .bashrc usando il percorso esplicito di Windows per l'eseguibile python e non il percorso root simile a unix (/ usr / bin) utilizzato da cygwin.
  2. In secondo luogo, e questo ha richiesto molti tentativi / errori ed ecco il gotcha! Cygwin installa python in / usr / bin (che è in realtà un mirror di / bin su windows) con la versione, ovvero (nel mio sistema) /usr/bin/python2.7.exe e quindi aggiunge un link / usr / bin / python -> python2.7.exe. Il problema è che gyp non può seguire questo link e continua a dare il fastidioso errore che non riesce a trovare Python anche se puoi trovarlo bene dalla riga di comando della shell.
  3. Con lo sfondo sopra ora aggiungi la seguente riga al tuo .bashrc

export PYTHON = "C: /cygwin64/bin/python2.7.exe (o qualunque sia la versione sul tuo sistema)"

  1. Ora fonte il tuo .bashrc dalla tua directory home (su cygwin) -> 'fonte .bashrc'

Ora dovresti stare bene e gyp troverà l'eseguibile python.

Spero che questo aiuti qualcuno a inciampare sulla stessa o simile questione.


Questo è ciò che ha risolto il mio problema con GitBash 2.6.3 su Windows
Scott Offen,

3

dovrebbe essere in grado di ottenere tutte le dipendenze nodo-gyp con chocolatey per Windows

choco install python2
choco install visualstudioexpress2013windowsdesktop

2

Imposta l'ambiente JavaScript

1. Installa Node.js

Scarica il programma di installazione dal sito Web di NodeJs. Puoi scaricare l'ultimo V6

2. Aggiorna Npm

Npm è installato insieme a Node.js. Quindi non preoccuparti.

3. Installa Anaconda

Anaconda è la principale piattaforma di scienza dei dati aperti basata su Python. La versione open source di Anaconda è una distribuzione ad alte prestazioni di Python. Può aiutarti a gestire la tua dipendenza da Python. Puoi usarlo per creare diversi ambienti Python in futuro se vuoi toccarlo.

Node-gyp supporta solo> = Python 2.7 e <Python 3.0

Quindi basta installare la versione 2.7

4. Installare Node-gyp

Puoi installare con  npm:

$ npm install -g node-gyp

Dovrai anche installare:

  • Su Windows:

    • Opzione 1: installare tutti gli strumenti e le configurazioni richiesti utilizzando  Windows-build-tools di Microsoft  utilizzando  npm install --global --production windows-build-tools PowerShell o CMD.exe elevato (eseguito come amministratore).

    • Opzione 2: installare manualmente gli strumenti e la configurazione:

    • Ambiente di compilazione Visual C ++:

      • Opzione 1: installa  Visual C ++ Build Tools  usando l'   opzione di installazione predefinita .
      • Opzione 2: installare  Visual Studio 2015  (o modificare un'installazione esistente) e selezionare  Strumenti comuni per Visual C ++  durante l'installazione. Questo funziona anche con le edizioni gratuite Community ed Express for Desktop.

      💡 [Solo Windows Vista / 7] richiede  .NET Framework 4.5.1

    • Avvia cmd, npm config set msvs_version 2015

    Se i passaggi precedenti non hanno funzionato per te, consulta  le Linee guida Microsoft Node.js per Windows  per ulteriori suggerimenti.

Se sono installate più versioni di Python, è possibile identificare quale versione di Python  node-gyp utilizza impostando la variabile '--python':

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

Se  node-gyp viene chiamato tramite  npm e  hai più versioni installate di Python, puoi impostare la  npmchiave di configurazione 'python' sul valore appropriato:

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

Futuro aggiornamento per Node.js e npm

Scarica il programma di installazione dal sito Web ufficiale e installalo direttamente. Il programma di installazione ti aiuterà automaticamente a rimuovere i vecchi file.

npm update npm

Futuro aggiornamento per Python

conda update --all


1

Per gli utenti Cygwin:

Il problema di Python con l'utilizzo npmdi un'installazione Cygwin pronta all'uso è che node-gypsta dando un errore fuorviante a causa di un controllo incompleto nel ../npm/node_modules/node-gyp/lib/configure.jscodice.

È dovuto al modo in cui Cygwin tratta i collegamenti simbolici. Non lo fa correttamente in un'installazione pronta all'uso. Quindi i messaggi di errore del codice precedente diventano fuorvianti, poiché si lamentano del PYTHONpercorso e non dell'esistenza del python.exe(o del collegamento) del file stesso.

Esistono (almeno) 2 modi per risolverlo.

  1. Installazione del pacchetto Cygwin cygutils-extrae utilizzo winln.
  2. Utilizzare la CMD Windows nativa in modalità amministratore.

Per ( 1 ) è possibile creare un collegamento simbolico corretto all'interno della shell Cygwin procedendo come segue:

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

(Supponendo anche che si stia eseguendo la shell Cygwin come amministratore.) L'uso apt-cygè consigliato e può essere trovato in varie forme su github.


Per ( 2 ) la risoluzione per gli utenti Cygwin out-of-the-box è questa:

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

Il risultato dovrebbe apparire così:

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

Per windows

Controlla il percorso di Python nella variabile di sistema. I plug-in npm richiedono l'installazione di node-gyp.

aprire il prompt dei comandi con diritti di amministratore ed eseguire il comando seguente.

npm install --global --produzione windows-build-tools

npm install --global node-gyp


0

gyp ERR! configura errore gyp ERR! stack error: Impossibile trovare l'eseguibile "python" di Python, puoi impostare la variabile env PYT HON.

Ciò significa che Python env. la variabile dovrebbe puntare al file python eseguibile, nel mio caso: SET PYTHON=C:\work\_env\Python27\python.exe


0

per me la soluzione era:

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

La domanda ha già una risposta, ma questi non funzionavano nel mio caso che è un sistema operativo basato su Linux alpino, quindi forse questo aiuta qualcun altro.

Stavo anche ottenendo lo stesso errore

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

Quindi correggi per singola riga aggiungi questo se stai lavorando in Dockerfile o installalo nel sistema operativo

apk add --no-cache python nodejs

in Ubuntu

sudo apt-get install python3.6

Nota: versione nodo: 8


0

installa il compilatore node-gyp e c ++ (gcc-c ++).


Puoi spiegare come questa è una risposta migliore rispetto alle altre 11 già qui?
Stephen Rauch,

Ciao Stephan, di sicuro non è il migliore, ma sì in pochi passi ha funzionato per me.
Brajesh Jaishwal,

0

Risolto il problema con il downgrade del nodo da v12.8.1 a v11.15.0 e tutto installato correttamente

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.