Ich komme in eine Node.js-Codebasis, die erfordert, dass ich einige Abhängigkeiten über NPM herunterlade, nämlich jQuery.
Beim Versuch zu laufen npm install jquery
wird immer wieder der folgende Fehler angezeigt:
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>
Es sieht so aus, als ob der Fehler auf eine fehlende Python-Installation zurückzuführen ist. Nun, ich habe Python installiert, die Variable gesetzt und neu gestartet und immer noch den Fehler.
Gibt es einen Hinweis darauf, was mir fehlt?
PYTHON=C:\Python27\Python.exe
in Ihrem Cmd-Fenster getan und neu gestartet haben, ging die Einstellung verloren.cmd.exe
Fenster vor dem Ausführen desnpm
Befehls einen Python-Interpreter? Wenn nicht, haben Sie es nicht richtig eingerichtet.python
%PYTHON%
Antworten:
Ihr Problem ist, dass Sie die Umgebungsvariable nicht festgelegt haben.
Der Fehler sagt dies eindeutig:
Und in Ihrem Kommentar sagen Sie, dass Sie dies getan haben:
Das ist schön, aber das setzt nicht die
PYTHON
Variable, sondern diePYTHONPATH
Variable.In der Zwischenzeit
set
wirkt sich die Verwendung des Befehls nur auf die aktuellecmd
Sitzung aus. Wenn Sie danach neu starten, wie Sie sagen, erhalten Sie eine ganz neuecmd
Sitzung, in der diese Variable nicht festgelegt ist.Es gibt einige Möglichkeiten, Umgebungsvariablen dauerhaft festzulegen. Am einfachsten ist dies in der Systemsteuerung in XP, die sich in Vista natürlich unterscheidet, in 7 erneut und in 8 erneut, aber Sie können danach googeln.
Alternativ können Sie
set
vor demnpm
Befehl einfach das Richtige tun , ohne dazwischen einen Neustart durchzuführen.Sie können testen, ob Sie die Dinge richtig gemacht haben, indem Sie genau das tun, was das Konfigurationsskript versucht: Versuchen Sie vor dem Ausführen
npm
, es auszuführen%PYTHON%
. Wenn Sie es richtig gemacht haben, erhalten Sie einen Python-Interpreter (den Sie sofort beenden können). Wenn Sie eine Fehlermeldung erhalten, haben Sie es nicht richtig gemacht.Hierbei gibt es zwei Probleme:
Erstens, du bist Einstellung
PYTHON
zu;D:\Python
. Dieses zusätzliche Semikolon ist in Ordnung für eine durch Semikolons getrennte Liste von Pfaden wiePATH
oderPYTHONPATH
, aber nicht für einen einzelnen Wert wiePYTHON
. Ebenso möchten Sie dem vorhandenen Wert einen neuen Wert hinzufügen, wenn Sie einer Liste von Pfaden einen anderen Pfad hinzufügen möchten, jedoch nicht für einen einzelnen Wert. Also willst du nurset PYTHON=D:\Python
.Zweitens
D:\Python
ist nicht der Pfad zu Ihrem Python-Interpreter. Es ist so etwas wieD:\Python\Python.exe
oderD:\Python\bin\Python.exe
. Suchen Sie den richtigen Pfad, stellen Sie sicher, dass er selbstständig funktioniert (z. B.D:\Python\bin\Python.exe
geben Sie einen Python-Interpreter ein und stellen Sie sicher, dass Sie ihn erhalten), legen Sie die Variable fest und verwenden Sie sie.So:
Wenn Sie es dauerhaft machen möchten, führen Sie das Gleiche in der Systemsteuerung aus.
quelle
D
Laufwerk habe ich auch Python, falls Sie sich fragen. Danke nochmal für deine Hilfe.set
Befehl aus irgendeinem Grund im NPM-Befehlsfenster ausführen und denmpm install jquery
Befehl direkt danach ausführen . Wenn ich sie separat gemacht habe, hat es aus irgendeinem Grund nicht funktioniert.set
wirkt sich der Befehl nur auf das aktuellecmd
Fenster aus. Sie müssen dies also tun, bevor Sienpm
im selben Fenster ausgeführt werden. Wenn Sie Umgebungsvariablen dauerhafter festlegen möchten, finden Sie diese in der Systemsteuerung oder gleichwertig für Ihre Windows-Version.Wenn Sie Python nicht zusammen mit allen Knoten-Gyp-Abhängigkeiten installiert haben, öffnen Sie einfach Powershell oder Git Bash mit Administratorrechten und führen Sie Folgendes aus:
und dann, um das Paket zu installieren:
Nach der Installation werden alle Knoten-Gyp-Abhängigkeiten heruntergeladen, Sie benötigen jedoch weiterhin die Umgebungsvariable. Validate Python befindet sich tatsächlich im richtigen Ordner:
Hinweis - Es wird Python 2.7 und nicht 3.x verwendet, da es nicht unterstützt wird
Wenn es nicht stöhnt, erstellen Sie Ihre (Benutzer-) Umgebungsvariable:
Starten Sie cmd neu und überprüfen Sie, ob die Variable vorhanden ist, über
set PYTHON
die die Variable zurückgegeben werden sollZuletzt erneut anwenden
npm install <module>
quelle
setx PYTHON $env:USERPROFILE\.windows-build-tools\python27\python.exe
Für mich nach der Installation von Windows-Build-Tools mit dem folgenden Kommentar
Führen Sie den folgenden Code aus
hat gearbeitet.
quelle
Hier ist eine Anleitung, die viele dieser Probleme für mich gelöst hat.
http://www.steveworkman.com/node-js/2012/installing-jsdom-on-windows/
Ich erinnere mich insbesondere an die Python-Version als wichtig. Stellen Sie sicher, dass Sie 2.7.3 anstelle von 3 installieren.
quelle
Eine und / oder mehrere davon sollten helfen:
Hinzufügen
C:\Python27\
zu IhrerPATH
Variablen (vorausgesetzt, Sie haben Python in diesem Verzeichnis installiert)So legen Sie die
PATH
env-Variable fest: http://www.computerhope.com/issues/ch000549.htmStarten Sie Ihre Konsole und / oder Windows nach dem Festlegen der Variablen neu.
Fügen Sie im selben Abschnitt wie oben ("Umgebungsvariablen") eine neue Variable mit Name
PYTHON
und Wert hinzu.C:\Python27\python.exe
Starten Sie Ihre Konsole und / oder Windows neu, nachdem Sie die Variable festgelegt haben.
Öffnen Sie die Windows-Befehlszeile (
cmd
) im Admin-Modus .Wechseln Sie in das Verzeichnis Ihres Python-Installationspfads:
cd C:\Python27
Stellen Sie sicher, dass für einige Installationen ein Symlink erforderlich ist:
mklink python2.7.exe python.exe
Bitte beachten Sie, dass Sie Python 2.x und NICHT 3.x haben sollten, um
node-gyp
basierte Installationen ausführen zu können !Der folgende Text bezieht sich auf Unix, aber für die Windows-Version ist auch Python 2.x erforderlich:
Dieser Artikel kann auch helfen: https://github.com/nodejs/node-gyp#installation
quelle
Ich hatte das gleiche Problem und keine dieser Antworten half. In meinem Fall wurde die PYTHON-Variable korrekt eingestellt. Python wurde jedoch zu tief installiert, dh es hat einen zu langen Pfad. Also habe ich folgendes gemacht:
Und das ist es!
quelle
Dies half: https://www.npmjs.com/package/node-gyp
Ich habe diese Schritte befolgt:
dann:
quelle
Es gibt eine Lösung, um dieses Problem zu beheben: 1) Führen Sie Ihre Eingabeaufforderung als "Administrator" aus.
Wenn die erste Lösung Ihr Problem nicht löst, versuchen Sie Folgendes:
2) Öffnen Sie eine Eingabeaufforderung, während der Administrator die folgende Codezeile einfügt, und drücken Sie die Eingabetaste:
quelle
TL; DR Erstellen Sie eine Kopie oder einen Alias Ihrer python.exe mit dem Namen python2.7.exe
Mein Python 2.7 wurde als installiert
Ich habe immer diesen Fehler erhalten, egal wie ich die PYTHON env-Variable gesetzt (und überprüft) habe:
Der Grund dafür war, dass in der Datei configure.js von node-gyp die ausführbare Python-Datei wie folgt aufgelöst wurde:
var python = gyp.opts.python || process.env.PYTHON || 'python'
Und es stellte sich heraus, dass gyp.opts.python den Wert 'python2.7' hatte, wodurch process.env.PYTHON überschrieben wurde.
Ich habe dieses Problem behoben, indem ich einen Alias für die ausführbare Datei python.exe mit dem Namen node-gyp erstellt habe, nach dem gesucht wurde:
D:\app\Python27>mklink python2.7.exe python.exe
Für diesen Vorgang benötigen Sie Administratorrechte.
quelle
Folgendes hat für mich über die Befehlszeile als Administrator funktioniert:
Installieren von Windows-Build-Tools (dies kann 15 bis 20 Minuten dauern):
Hinzufügen / Aktualisieren der Umgebungsvariablen:
Node-Gyp installieren:
Ändern des Namens der exe-Datei von Python in Python2.7.
npm install module_name --save
quelle
Ich kann nicht anders, als dies zu erwähnen. Wenn Sie Python3 verwenden und mit Node-Gyp versagen, muss ich Ihnen leider mitteilen, dass Node-Gyp Python3 derzeit nicht unterstützt.
Hier ist ein Link für Sie: https://github.com/nodejs/node-gyp/issues/1268 https://github.com/nodejs/node-gyp/issues/193
quelle
Dies ist der einfachste Weg, NPM alles für Sie tun zu lassen
quelle
Der richtige Weg ist 1) Laden Sie Python 2.7.14 von hier herunter und installieren Sie es . 2) Legen Sie von hier aus die Umgebungsvariable für Python fest .
getan!
Hinweis: Bitte setzen Sie die Umgebungsvariable entsprechend. Ich antwortete hier für Windows.
quelle
Für mich war das Problem, dass ich die neueste Version des Knotens verwendete und nicht die
LTS
Version, die die stabile Version ist und für die meisten Benutzer empfohlen wird.Die Verwendung der
LTS
Version löste das Problem.Sie können hier herunterladen:
LTS-Version
Aktuelle neueste Version
quelle
Ich habe die gleiche Herausforderung beim Versuch, [email protected] zu installieren, gemeistert .
Nachdem ich mir die aktuelle offizielle Dokumentation angesehen und die obigen Antworten gelesen hatte, stellte ich fest, dass Sie möglicherweise nicht unbedingt Node-Gyp oder Windows-Build-Tools installieren müssen. Hier steht die Installation von Node-Gyp unter Windows . Denken Sie daran, dass node-gyp am Installationsprozess von node-sass beteiligt ist. Und Sie müssen nicht wirklich eine andere Python-Version neu installieren.
Dies ist der Retter. Konfigurieren Sie den Python-Pfad, nach dem "npm" suchen soll, während Sie Pakete installieren, für die Build-Tools erforderlich sind.
Ich hatte dort Python3.6.3 unter Windows-7 installiert.
quelle
[email protected]
, als ichwindows-10
mit[email protected]
und[email protected]
Python36/python
dies der Pfad zu Ihrer ausführbaren Python-Datei sein sollte.exe
hold Shift, and Right-Click
und geben Sie diese:npm config set python
Für mich haben diese Schritte das Problem behoben:
1- Ausführen dieses Cmd als Administrator:
npm install --global --production windows-build-tools
2- Führen Sie
npm rebuild
die Ausführung nach Abschluss des ersten Schritts aus (insbesondere nach Abschluss der Python 2.7-Installation, die die Hauptursache für das Problem war).quelle
Laden Sie das Python-Installationsprogramm hier herunter . Es erledigt die Arbeit für Sie, wenn Sie die Pfadinstallation überprüfen
quelle
Hier ist der richtige Befehl: set path =% path%; C: \ Python34 [Durch den richtigen Pfad Ihrer Python-Installation ersetzen]
Ich hatte das gleiche Problem und habe es einfach so gelöst.
Wie einige andere Leute betonten, handelt es sich um eine flüchtige Konfiguration, die nur für die aktuelle cmd-Sitzung funktioniert und (offensichtlich) Sie müssen Ihren Pfad festlegen, bevor Sie die npm-Installation ausführen.
Ich hoffe das hilft.
quelle
Diese Ausnahme muss nicht neu installiert werden. Diese Ausnahme wird durch ein Node-Gyp-Skript ausgelöst. Versuchen Sie dann, sie neu zu erstellen. Es ist genug Setup-Umgebungsvariable wie in meinem Fall:
quelle
Wenn Sie versuchen, dies auf Cygwin zu verwenden, müssen Sie den Anweisungen in dieser Antwort folgen . (Es ist ein Problem, wie Cygwin Windows-Symlinks behandelt.)
quelle
Beispiel: pg_config nicht ausführbar / error node-gyp
Lösung: Versuchen Sie unter Windows einfach, PATH Env -> C: \ Programme \ PostgreSQL \ 12 \ bin hinzuzufügen
Arbeite für mich. Jetzt kann ich zum Beispiel npm i pg-versprechen oder andere Abhängigkeiten verwenden.
quelle
pg-promise
das brauchst du nicht. Sie wurden wahrscheinlich gefangen von diesem . Verwenden Sie einfach die neueste Version, und es wird Ihnen gut gehen, Sie brauchen nichts von dem zusätzlichen Zeug;)