NodeJS - Erreur d'installation avec 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>

J'installe un certain script NodeJS - Caress . Mais je n'en suis pas incapable. J'utilise Windows 8.1, quelqu'un peut-il me dire quel est le problème auquel je suis confronté et pourquoi cette installation ne fonctionne pas. Il semble y avoir un problème avec la dépendance des buffertools, c'est ce que je peux penser. Je ne sais pas comment résoudre ce problème?

Si je télécharge la construction depuis github et la place dans des modules de nœuds, rien ne semble fonctionner. lorsque j'essaie de démarrer, en utilisant npm start, ou pendant la mise en œuvre non plus.

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 variable env n'a pas été définie. dsnt travailler avec non plus. pastebin.com/jBXwi63a
Shaurya Chaudhuri

Réponses:


365
Comme indiqué ci-dessous, vous n'aurez peut-être pas besoin d'installer VS sur Windows, vérifiez ceci

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

MISE À JOUR 02/2016

Certains plugins npm doivent node-gypêtre installés.

Cependant, node-gypa ses propres dépendances ( depuis la page github ):

entrez la description de l'image ici

MISE À JOUR 09/2016

Si vous utilisez Windows, vous pouvez maintenant installer toutes les node-gypdépendances avec une seule commande (REMARQUE: exécuter en tant qu'administrateur dans Windows PowerShell):

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

puis installez le package

 $ npm install --global node-gyp

MISE À JOUR 06/2018

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

Supprimez votre répertoire $ HOME / .node-gyp et réessayez.

Voir la documentation complète ici: node-gyp


Donc quand je l'installe sur une box linux. Que dois-je faire à la place de ms vc ++? Et je l'obtiens quand j'ai fait toutes les choses que vous avez mentionnées. - pastebin.com/LgJEKFFS
Shaurya Chaudhuri

Une chaîne d'outils de compilateur C / C ++ appropriée, comme GCC:sudo apt-get install g++
Ilan Frumer

1
@IlanFrumer oh je préfère Linux à tout moment, mais parfois je dois installer des applications sur le serveur d'un client ..
Spock

4
Cela ne serait-il pas résolu en installant un compilateur C ++ non dépendant de VS sur Windows? Une telle chose est-elle impossible à trouver? Je suis confus.
jcollum

1
Merci pour votre soutien, ça marche pour moi. Juste un conseil: exécutez en tant qu'administrateur dans Windows
MuriloMittmann

16

Assurez-vous que vous disposez de tous les logiciels requis pour exécuter node-gyp:

Vous pouvez configurer la version de Visual Studio utilisée par node-gypvia une variable d'environnement afin d'éviter d'avoir à définir la --msvs_version=2012propriété à chaque fois que vous effectuez une installation npm.

Exemples:

  • défini GYP_MSVS_VERSION=2012pour Visual Studio 2012
  • ensemble GYP_MSVS_VERSION=2013e(le «e» signifie «édition express» GRATUITE)

Pour la liste complète, voir - https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294

Ceci est toujours pénible pour les utilisateurs Windows de NodeJS car il suppose que vous avez installé une copie de Visual Studio et que de nombreux utilisateurs finaux ne l'auront jamais. Je fais donc du lobbying auprès de Joyent pour les encourager à inclure des sockets Web dans le cadre du nœud CORE et à envoyer éventuellement un compilateur GNU gcc dans le cadre de l'installation de NodeJS afin que nous puissions résoudre ce problème de manière permanente.

N'hésitez pas à ajouter votre vote à:


4
Je l'ai (enfin) fait travailler avec l'édition communautaire VS 2015. Je suis sur Windows 10, 64 bits. J'ai utilisé "npm config set msvs_version 2015 -g" dans l'invite de commande (après l'installation de VS, bien sûr). La plupart des gens qui tombent sur ce problème au fil du temps ont suggéré VS2010, ou parfois jusqu'en 2013, mais j'ai résolu au moins mon problème de nœud-gyp actuel avec VS2015. Je devais également "npm installer -g sigmund" et installer manuellement "lru-cache" depuis Github. Le problème d'origine était d'avoir "Utf-8-Validate" installé, en tant que dépendance d'un échantillon Aurelia.
Mathieu Leblanc

10

J'ai rencontré le problème avec l'erreur:

gyp ERR! configure error

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

Voici ce que je faisais et ce qui a finalement fonctionné.

Avertissement : je viens de mettre la main sur Node, Angular après de nombreuses années dans le monde Java, Linux entre autres ...

Description de l'environnement : Windows 8.1 64 bits; Cygwin; cygwin bash shell

Commande utilisée qui a conduit à l'erreur : npm install -g karma

Erreur : gyp ERR! configurer l'erreur gyp ERR! Erreur de pile: Impossible de trouver l'exécutable Python "python", vous pouvez définir la variable env PYT HON.

Découverte : «quel python» sur le shell bash affiche clairement «/ usr / bin / python». Maintenant c'est ennuyeux!

Solution : Cela ne s'applique qu'à ceux qui utilisent un environnement similaire à ce que j'ai, c'est-à-dire en utilisant cygwin et bash shell. J'espère que cela aide également dans d'autres environnements, mais gardez à l'esprit que votre bouilloire de thé peut sembler un peu différente de la mienne.

  1. Tout d'abord, vous devez définir la variable env du shell $ PYTHON dans .bashrc en utilisant le chemin explicite de Windows vers l'exécutable python et non le chemin racine de type Unix (/ usr / bin) utilisé par cygwin.
  2. Deuxièmement, et celui-ci a pris beaucoup d'essais / erreurs et voici le piège! Cygwin installe python sous / usr / bin (qui est vraiment un miroir de / bin sur windows) avec la version, ie (dans mon système) /usr/bin/python2.7.exe puis ajoute un lien / usr / bin / python -> python2.7.exe. Le problème est que gyp ne peut pas suivre ce lien et continue de donner l'erreur ennuyeuse qu'il ne peut pas trouver python même si vous pouvez le trouver très bien à partir de la ligne de commande du shell.
  3. Avec l'arrière-plan ci-dessus, ajoutez maintenant la ligne suivante à votre .bashrc

export PYTHON = "C: /cygwin64/bin/python2.7.exe (ou quelle que soit la version sur votre système)"

  1. Maintenant, sourcez votre .bashrc depuis votre répertoire personnel (sur cygwin) -> 'source .bashrc'

Vous devriez aller bien maintenant et gyp trouvera l'exécutable python.

J'espère que cela aide quelqu'un à trébucher sur le même problème ou un problème similaire.


C'est ce qui a résolu mon problème en utilisant GitBash 2.6.3 sous Windows
Scott Offen

3

devrait être en mesure d'obtenir toutes les dépendances de nœud-gyp avec chocolatey pour Windows

choco install python2
choco install visualstudioexpress2013windowsdesktop

2

Configurer l'environnement JavaScript

1. Installez Node.js

Téléchargez le programme d'installation sur le site Web de NodeJs. Vous pouvez télécharger le dernier V6

2. Mettre à jour Npm

Npm est installé avec Node.js. Alors ne t'inquiète pas.

3. Installez Anaconda

Anaconda est la principale plate-forme de science des données ouvertes propulsée par Python. La version open source d'Anaconda est une distribution haute performance de Python. Il peut vous aider à gérer votre dépendance python. Vous pouvez l'utiliser pour créer un environnement python différent dans le futur si vous voulez le toucher.

Prise en charge de Node-gyp uniquement> = Python 2.7 et <Python 3.0

Il suffit donc d'installer la version 2.7

4. Installez Node-gyp

Vous pouvez installer avec  npm:

$ npm install -g node-gyp

Vous devrez également installer:

  • Sous Windows:

    • Option 1: installez tous les outils et configurations requis à l'aide des outils de création de fenêtres de Microsoft   à  npm install --global --production windows-build-tools partir d'un PowerShell ou CMD.exe élevé (exécuté en tant qu'administrateur).

    • Option 2: installez les outils et la configuration manuellement:

    • Environnement de construction Visual C ++:

      • Option 1: installez  Visual C ++ Build Tools  à l'aide de l'   option d' installation par défaut .
      • Option 2: installez  Visual Studio 2015  (ou modifiez une installation existante) et sélectionnez  Outils communs pour Visual C ++  lors de l'installation. Cela fonctionne également avec les éditions gratuites Community et Express for Desktop.

      💡 [Windows Vista / 7 uniquement] nécessite  .NET Framework 4.5.1

    • Lancer cmd, npm config set msvs_version 2015

    Si les étapes ci-dessus n'ont pas fonctionné pour vous, veuillez consulter  les Consignes Microsoft Node.js pour Windows  pour obtenir des conseils supplémentaires.

Si plusieurs versions de Python sont installées, vous pouvez identifier la version de Python  node-gyp utilisée en définissant la variable '--python':

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

Si  node-gyp est appelé par le biais de  npm et  que plusieurs versions de Python sont installées, vous pouvez définir  npmla clé de configuration de 's' python 'sur la valeur appropriée:

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

Mise à jour future pour Node.js et npm

Téléchargez l'installateur depuis leur site officiel et installez-le directement. Le programme d'installation vous aidera automatiquement à supprimer les anciens fichiers.

npm update npm

Mise à jour future pour Python

conda update --all


1

Pour les utilisateurs de Cygwin:

Le problème de python avec l'utilisation npmsur une installation Cygwin prête à l'emploi est qu'il node-gypdonne une erreur trompeuse en raison d'une vérification incomplète du ../npm/node_modules/node-gyp/lib/configure.jscode.

Cela est dû à la façon dont Cygwin traite les liens symboliques. Il ne le fait pas correctement dans une installation prête à l'emploi. Ainsi, les messages d'erreur du code ci-dessus deviennent trompeurs, car il se plaint du PYTHONchemin d'accès et non de l'existence python.exe(ou du lien) du fichier lui-même.

Il existe (au moins) 2 façons de résoudre ce problème.

  1. Installation du package Cygwin cygutils-extraet utilisation winln.
  2. Utilisez Windows CMD natif en mode Admin.

Pour ( 1 ), vous pouvez créer un lien symbolique approprié à partir du shell Cygwin en procédant comme suit:

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

(En supposant également que vous exécutez le shell Cygwin en tant qu'administrateur.) L'utilisation apt-cygest recommandée et peut être trouvée sous diverses formes sur github.


Pour ( 2 ), la résolution pour les utilisateurs Cygwin prêts à l'emploi est la suivante:

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

Le résultat devrait ressembler à ceci:

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

Pour les fenêtres

Vérifiez le chemin python dans la variable système. Les plugins npm ont besoin que node-gyp soit installé.

ouvrez l'invite de commande avec les droits d'administrateur et exécutez la commande suivante.

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

npm install --global node-gyp


0

gyp ERR! configurer l'erreur gyp ERR! Erreur de pile: Impossible de trouver l'exécutable Python "python", vous pouvez définir la variable env PYT HON.

Cela signifie que l'env Python. La variable doit pointer vers le fichier python exécutable, dans mon cas: SET PYTHON=C:\work\_env\Python27\python.exe


0

pour moi la solution était:

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 question est déjà répondue mais cela ne fonctionnait pas dans mon cas, qui est un système d'exploitation alpin basé sur Linux, alors peut-être que cela aide quelqu'un d'autre.

J'obtenais aussi la même erreur

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

Donc, corrigez-le en une seule ligne, ajoutez-le si vous travaillez dans Dockerfile ou installez-le dans le système d'exploitation

apk add --no-cache python nodejs

à Ubuntu

sudo apt-get install python3.6

Remarque: version du nœud: 8


0

installez node-gyp et le compilateur c ++ (gcc-c ++).


Pouvez-vous expliquer en quoi c'est une meilleure réponse que les 11 autres déjà présents?
Stephen Rauch

Salut Stephan, ce n'est certainement pas le meilleur, mais oui, en quelques étapes minimales qui ont fonctionné pour moi.
brajesh jaishwal

0

Corrigé avec la rétrogradation de Node de v12.8.1 à v11.15.0 et tout installé avec succès

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.