J'entre dans une base de code Node.js qui nécessite que je télécharge quelques dépendances via NPM, à savoir jQuery.
En essayant de courir npm install jquery
, je reçois toujours cette erreur:
Your environment has been set up for using Node.js 0.8.21 (x64) and NPM
C:\Users\Matt Cashatt>npm install jquery
npm http GET https://registry.npmjs.org/jquery
npm http 304 https://registry.npmjs.org/jquery
npm http GET https://registry.npmjs.org/jsdom
npm http GET https://registry.npmjs.org/xmlhttprequest
npm http GET https://registry.npmjs.org/htmlparser/1.7.6
npm http GET https://registry.npmjs.org/location/0.0.1
npm http GET https://registry.npmjs.org/navigator
npm http GET https://registry.npmjs.org/contextify
npm http 304 https://registry.npmjs.org/htmlparser/1.7.6
npm http 304 https://registry.npmjs.org/xmlhttprequest
npm http 304 https://registry.npmjs.org/location/0.0.1
npm http 304 https://registry.npmjs.org/navigator
npm http 304 https://registry.npmjs.org/jsdom
npm http 304 https://registry.npmjs.org/contextify
npm http GET https://registry.npmjs.org/bindings
npm http GET https://registry.npmjs.org/cssom
npm http GET https://registry.npmjs.org/cssstyle
npm http GET https://registry.npmjs.org/request
npm http 304 https://registry.npmjs.org/bindings
> contextify@0.1.4 install C:\Users\Matt Cashatt\node_modules\jquery\node_module
s\contextify
> node-gyp rebuild
C:\Users\Matt Cashatt\node_modules\jquery\node_modules\contextify>node "C:\Progr
am Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\b
in\node-gyp.js" rebuild
npm http 304 https://registry.npmjs.org/cssstyle
npm http 304 https://registry.npmjs.org/cssom
npm http 304 https://registry.npmjs.org/request
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 (C:\Program Files\nodejs\node_modules\npm\nod
e_modules\node-gyp\lib\configure.js:113:14)
gyp ERR! stack at C:\Program Files\nodejs\node_modules\npm\node_modules\node
-gyp\lib\configure.js:82:11
gyp ERR! stack at Object.oncomplete (fs.js:297:15)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modu
les\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\Matt Cashatt\node_modules\jquery\node_modules\contextify
gyp ERR! node -v v0.8.21
gyp ERR! node-gyp -v v0.8.4
gyp ERR! not ok
npm ERR! error rolling back Error: ENOTEMPTY, rmdir 'C:\Users\Matt Cashatt\node_
modules\jquery\node_modules\jsdom\node_modules\request\tests'
npm ERR! error rolling back [email protected] { [Error: ENOTEMPTY, rmdir 'C:\Users\M
att Cashatt\node_modules\jquery\node_modules\jsdom\node_modules\request\tests']
npm ERR! error rolling back errno: 53,
npm ERR! error rolling back code: 'ENOTEMPTY',
npm ERR! error rolling back path: 'C:\\Users\\Matt Cashatt\\node_modules\\jque
ry\\node_modules\\jsdom\\node_modules\\request\\tests' }
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! `cmd "/c" "node-gyp rebuild"` failed with 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the contextify 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 contextify
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "jquery"
npm ERR! cwd C:\Users\Matt Cashatt
npm ERR! node -v v0.8.21
npm ERR! npm -v 1.2.11
npm ERR! code ELIFECYCLE
npm ERR! Error: ENOENT, lstat 'C:\Users\Matt Cashatt\node_modules\jquery\node_mo
dules\jsdom\node_modules\request\tests\test-pipes.js'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "jquery"
npm ERR! cwd C:\Users\Matt Cashatt
npm ERR! node -v v0.8.21
npm ERR! npm -v 1.2.11
npm ERR! path C:\Users\Matt Cashatt\node_modules\jquery\node_modules\jsdom\node_
modules\request\tests\test-pipes.js
npm ERR! fstream_path C:\Users\Matt Cashatt\node_modules\jquery\node_modules\jsd
om\node_modules\request\tests\test-pipes.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack C:\Program Files\nodejs\node_modules\npm\node_modules\fst
ream\lib\writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:297:15)
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! C:\Users\Matt Cashatt\npm-debug.log
npm ERR! not ok code 0
C:\Users\Matt Cashatt>
Il semble que l'échec soit dû à une installation Python manquante. Eh bien, j'ai installé Python, défini la variable et redémarré et toujours l'erreur.
Une idée de ce qui me manque?
PYTHON=C:\Python27\Python.exe
dans votre fenêtre cmd et redémarrez, le paramètre a été perdu.cmd.exe
fenêtre, avant d'essayer lanpm
commande, est-ce quepython
ou%PYTHON%
démarrez un interpréteur Python? Sinon, vous ne l'avez pas bien configuré.Réponses:
Votre problème est que vous n'avez pas défini la variable d'environnement.
L'erreur dit clairement ceci:
Et dans votre commentaire, vous dites que vous avez fait ceci:
C'est bien, mais cela ne définit pas la
PYTHON
variable, cela définit laPYTHONPATH
variable.Pendant ce temps, l'utilisation de la
set
commande n'affecte que lacmd
session en cours. Si vous redémarrez après cela, comme vous l'avez dit, vous vous retrouvez avec une toute nouvellecmd
session qui n'a pas cette variable définie.Il existe plusieurs façons de définir les variables d'environnement de manière permanente - la plus simple est dans le Panneau de configuration système sous XP, qui est bien sûr différent sous Vista, différent à nouveau en 7 et différent à nouveau en 8, mais vous pouvez le rechercher sur Google.
Alternativement, faites juste la
set
droite avant lanpm
commande, sans redémarrer entre les deux.Vous pouvez tester si vous avez bien fait les choses en faisant exactement la même chose que le script de configuration essaie de faire: avant de lancer
npm
, essayez de lancer%PYTHON%
. Si vous l'avez fait correctement, vous obtiendrez un interpréteur Python (que vous pouvez immédiatement quitter). Si vous obtenez une erreur, vous ne l'avez pas bien fait.Il y a deux problèmes avec ceci:
Tout d'abord, vous vous mettez
PYTHON
à;D:\Python
. Ce point-virgule supplémentaire convient pour une liste de chemins séparés par des points-virgules, commePATH
ouPYTHONPATH
, mais pas pour une seule valeur commePYTHON
. Et de même, ajouter une nouvelle valeur à la valeur existante est ce que vous voulez lorsque vous souhaitez ajouter un autre chemin à une liste de chemins, mais pas pour une seule valeur. Alors, tu veux justeset PYTHON=D:\Python
.Deuxièmement, ce
D:\Python
n'est pas le chemin vers votre interpréteur Python. C'est quelque chose commeD:\Python\Python.exe
, ouD:\Python\bin\Python.exe
. Trouvez le bon chemin, assurez-vous qu'il fonctionne seul (par exemple, tapezD:\Python\bin\Python.exe
et assurez-vous d'obtenir un interpréteur Python), puis définissez la variable et utilisez-la.Alors:
Ou, si vous voulez le rendre permanent, faites l'équivalent dans le Panneau de configuration.
la source
D
lecteur est l'endroit où j'ai Python au cas où vous vous poseriez la question. Merci encore pour votre aide.set
commande dans la fenêtre de commande NPM pour une raison quelconque, puis exécuter lampm install jquery
commande juste après. Si je les ai fait séparément, cela n'a pas fonctionné pour une raison quelconque.set
commande n'affecte que lacmd
fenêtre actuelle , vous devez donc la faire avant de l'exécuternpm
dans la même fenêtre. Si vous souhaitez définir des variables d'environnement de manière plus permanente, c'est dans le Panneau de configuration du système, ou l'équivalent pour votre version de Windows.Si vous n'avez pas installé python avec toutes les dépendances de node-gyp, ouvrez simplement Powershell ou Git Bash avec des privilèges d'administrateur et exécutez:
puis pour installer le package:
une fois installé, vous aurez toutes les dépendances node-gyp téléchargées, mais vous aurez toujours besoin de la variable d'environnement. Valider Python se trouve en effet dans le bon dossier:
Remarque - il utilise python 2.7 et non 3.x car il n'est pas pris en charge
S'il ne gémit pas, allez-y et créez votre variable d'environnement (utilisateur):
redémarrez cmd et vérifiez que la variable existe via
set PYTHON
laquelle doit renvoyer la variableEnfin, réappliquez
npm install <module>
la source
setx PYTHON $env:USERPROFILE\.windows-build-tools\python27\python.exe
Pour moi après avoir installé windows-build-tools avec le commentaire ci-dessous
exécuter le code ci-dessous
a travaillé.
la source
Voici un guide qui a résolu un grand nombre de ces problèmes pour moi.
http://www.steveworkman.com/node-js/2012/installing-jsdom-on-windows/
Je me souviens en particulier de la version python comme importante. Assurez-vous d'installer 2.7.3 au lieu de 3.
la source
Un et / ou plusieurs de ceux-ci devraient aider:
Ajoutez
C:\Python27\
à votrePATH
variable (en considérant que Python est installé dans ce répertoire)Comment définir la
PATH
variable env: http://www.computerhope.com/issues/ch000549.htmRedémarrez votre console et / ou Windows après avoir défini la variable.
Dans la même section que ci-dessus ("Variables d'environnement"), ajoutez une nouvelle variable avec le nom
PYTHON
et la valeurC:\Python27\python.exe
Redémarrez votre console et / ou Windows après avoir défini la variable.
Ouvrez la ligne de commande Windows (
cmd
) en mode Admin .Changez le répertoire en votre chemin d'installation Python:
cd C:\Python27
Rendez le lien symbolique nécessaire pour certaines installations:
mklink python2.7.exe python.exe
Veuillez noter que vous devriez avoir Python 2.x, PAS 3.x , pour exécuter des
node-gyp
installations basées!Le texte ci-dessous dit sur Unix, mais la version Windows nécessite également Python 2.x:
Cet article peut également aider: https://github.com/nodejs/node-gyp#installation
la source
J'ai eu le même problème et aucune de ces réponses n'a aidé. Dans mon cas, la variable PYTHON a été définie correctement. Cependant python a été installé trop profondément, c'est-à-dire a un chemin trop long. J'ai donc fait ce qui suit:
Et c'est tout!
la source
Cela a aidé: https://www.npmjs.com/package/node-gyp
J'ai suivi ces étapes:
puis:
la source
il existe une solution pour résoudre ce problème: 1) exécutez votre invite de commande en tant qu '"administrateur".
si la première solution ne résout pas votre problème, essayez celle-ci:
2) ouvrez une invite de commande en tant qu'administrateur, collez la ligne de code suivante et appuyez sur Entrée:
la source
TL; DR Faites une copie ou un alias de votre python.exe avec le nom python2.7.exe
Mon python 2.7 a été installé en tant que
J'ai toujours cette erreur, peu importe la façon dont j'ai défini (et vérifié) la variable env PYTHON:
La raison en était que dans le fichier configure.js de node-gyp, l'exécutable python était résolu comme:
var python = gyp.opts.python || process.env.PYTHON || 'python'
Et il s'est avéré que gyp.opts.python avait la valeur 'python2.7', remplaçant ainsi process.env.PYTHON.
J'ai résolu cela en créant un alias pour l'exécutable python.exe avec le nom que node-gyp recherchait:
D:\app\Python27>mklink python2.7.exe python.exe
Vous avez besoin des droits d'administrateur pour cette opération.
la source
Les éléments suivants ont fonctionné pour moi à partir de la ligne de commande en tant qu'administrateur:
Installation de windows-build-tools (cela peut prendre 15 à 20 minutes):
Ajout / mise à jour de la variable d'environnement:
Installation de node-gyp:
Modification du nom du fichier exe de Python à Python2.7.
npm install module_name --save
la source
je ne peux pas m'empêcher de le mentionner. Si vous utilisez Python3 et échouez avec node-gyp, je suis triste de vous dire que node-gyp ne prend actuellement pas en charge python3.
Voici un lien pour vous: https://github.com/nodejs/node-gyp/issues/1268 https://github.com/nodejs/node-gyp/issues/193
la source
C'est le moyen le plus simple de laisser NPM faire tout pour vous
la source
La bonne façon est 1) de télécharger et d'installer python 2.7.14 à partir d' ici . 2) Définissez la variable d'environnement pour python à partir d' ici .
terminé!
Remarque: Veuillez définir la variable d'environnement en conséquence. J'ai répondu ici pour les fenêtres.
la source
J'ai rencontré le même défi en essayant d' installer [email protected] .
Et après avoir regardé la documentation officielle actuelle et après avoir lu les réponses ci-dessus, j'ai remarqué que vous pourriez ne pas nécessairement avoir à installer node-gyp ni à installer des outils de construction de fenêtres. Voici ce qu'il dit, ici sur l'installation de node-gyp sur Windows . N'oubliez pas que node-gyp est impliqué dans le processus d'installation de node-sass. Et vous n'avez pas vraiment à réinstaller une autre version de python.
Ceci est le sauveur, configurez le chemin d'accès python que "npm" doit rechercher lors de l'installation des packages qui nécessitent des outils de build.
J'avais installé python3.6.3, sur windows-7, là-bas.
la source
[email protected]
, lorsque je suis passé àwindows-10
, en utilisant[email protected]
et[email protected]
Python36/python
devrait être le chemin vers votre fichier exécutable python.exe
hold Shift, and Right-Click
et entrez ceci:npm config set python
Pourquoi ne pas télécharger le programme d'installation de python ici ? Il fait le travail pour vous lorsque vous vérifiez l'installation du chemin
la source
Pour moi, ces étapes ont résolu le problème:
1- Exécuter ce cmd en tant qu'administrateur:
npm install --global --production windows-build-tools
2- Puis en cours d'exécution une
npm rebuild
fois la 1ère étape terminée (en particulier l'achèvement de l'installation de python 2.7, qui était la principale cause du problème)la source
Voici la commande correcte: set path =% path%; C: \ Python34 [Remplacez par le chemin correct de votre installation python]
J'ai eu le même problème et je viens de résoudre ça comme ça.
Comme d'autres personnes l'ont souligné, il s'agit d'une configuration volatile, cela ne fonctionne que pour la session cmd actuelle et (évidemment) vous devez définir votre chemin avant d'exécuter l'installation de npm.
J'espère que ça aide.
la source
Pas nécessaire de réinstaller, cette exception lance par le script node-gyp, puis essayez de reconstruire. C'est assez de variable d'environnement d'installation comme dans mon cas, je l'ai fait:
la source
Si vous essayez de l'utiliser sur Cygwin, vous devez suivre les instructions de cette réponse. (La façon dont Cygwin traite les liens symboliques Windows pose problème.)
la source
Exemple: pg_config non exécutable / erreur node-gyp
Lösung: Sous Windows essayez juste d'ajouter PATH Env -> C: \ Program Files \ PostgreSQL \ 12 \ bin
Travaillez pour moi, maintenant je peux utiliser npm i pg-promise par exemple ou d'autres dépendances.
la source
pg-promise
vous n'en avez pas besoin. Vous avez probablement été rattrapé par cela . Utilisez simplement la dernière version, et tout ira bien, pas besoin de ces trucs supplémentaires;)Pour moi, le problème était que j'utilisais la dernière version de node et non la
LTS
version qui est la version stable et recommandée pour la plupart des utilisateurs.L'utilisation de la
LTS
version a résolu le problème.Vous pouvez télécharger ici:
Version LTS
Dernière version actuelle
la source