NodeJS - Fehler bei der Installation mit 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>

Ich installiere ein bestimmtes NodeJS-Skript - Caress . Aber ich kann nicht. Ich verwende Windows 8.1. Kann mir jemand sagen, mit welchem ​​Problem ich konfrontiert bin und warum diese Installation nicht funktioniert? Es scheint ein Problem mit der Abhängigkeit von Buffertools zu geben, soweit ich das beurteilen kann. Sie wissen nicht, wie Sie das vielleicht beheben können?

Wenn ich den Build von Github herunterlade und in Node-Modulen platziere, scheint nichts zu funktionieren. wenn ich versuche zu starten, mit npm start oder während der Implementierung.

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>

Die env-Variable wurde nicht gesetzt. dsnt auch damit nicht arbeiten. pastebin.com/jBXwi63a
Shaurya Chaudhuri

Antworten:


365
Wie unten kommentiert, müssen Sie VS möglicherweise nicht unter Windows installieren. Überprüfen Sie dies

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

AKTUALISIERT 02/2016

Einige npm-Plugins müssen node-gypinstalliert werden.

Allerdings node-gyphat seine eigene Abhängigkeiten ( von der Github Seite ):

Geben Sie hier die Bildbeschreibung ein

AKTUALISIERT 09/2016

Wenn Sie Windows verwenden, können Sie jetzt alle node-gypAbhängigkeiten mit einem einzigen Befehl installieren (HINWEIS: Als Administrator in Windows PowerShell ausführen):

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

und installieren Sie dann das Paket

 $ npm install --global node-gyp

AKTUALISIERT 06/2018

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

Löschen Sie Ihr Verzeichnis $ HOME / .node-gyp und versuchen Sie es erneut.

Die vollständige Dokumentation finden Sie hier: Node-Gyp


Also, wenn ich es auf einer Linux-Box installiere. Was mache ich anstelle von ms vc ++? Und ich bekomme das, wenn ich all die Dinge getan habe, die du erwähnt hast. - pastebin.com/LgJEKFFS
Shaurya Chaudhuri

Eine richtige C / C ++ - Compiler-Toolchain wie GCC:sudo apt-get install g++
Ilan Frumer

1
@IlanFrumer Oh, ich würde Linux jederzeit bevorzugen, aber manchmal muss ich Anwendungen auf dem Server eines Kunden installieren.
Spock

4
Wäre dies nicht durch die Installation eines nicht VS-abhängigen C ++ - Compilers unter Windows möglich? Ist so etwas unmöglich zu finden? Ich bin verwirrt.
JCollum

1
Vielen Dank für die Unterstützung Jungs, arbeitet für mich. Nur ein Tipp: Führen Sie als Administrator in Windows
MuriloMittmann

16

Stellen Sie sicher, dass Sie über die erforderliche Software verfügen, um Folgendes auszuführen node-gyp:

Sie können die Version von Visual Studio konfigurieren, die von node-gypüber eine Umgebungsvariable verwendet wird, sodass Sie die --msvs_version=2012Eigenschaft nicht bei jeder npm-Installation festlegen müssen.

Beispiele:

  • Set GYP_MSVS_VERSION=2012für Visual Studio 2012
  • set GYP_MSVS_VERSION=2013e(das 'e' steht für KOSTENLOSE 'Express Edition')

Die vollständige Liste finden Sie unter https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294

Dies ist für Windows-Benutzer von NodeJS immer noch schmerzhaft, da davon ausgegangen wird, dass Sie eine Kopie von Visual Studio installiert haben und viele Endbenutzer dies niemals haben werden. Deshalb setze ich mich für Joyent ein, um sie zu ermutigen, Web-Sockets als Teil des CORE-Knotens aufzunehmen und möglicherweise einen GNU-gcc-Compiler als Teil der NodeJS-Installation zu versenden, damit wir dieses Problem dauerhaft beheben können.

Fühlen Sie sich frei, Ihre Stimme hinzuzufügen unter:


4
Ich hatte es gerade (endlich) mit der VS 2015 Community Edition zu tun. Ich bin auf Fenster 10, 64 Bit. Ich habe "npm config set msvs_version 2015 -g" in der Eingabeaufforderung verwendet (natürlich nach der Installation von VS). Die meisten Leute, die im Laufe der Zeit auf dieses Problem stoßen, haben VS2010 oder manchmal bis 2013 vorgeschlagen, aber ich habe zumindest mein aktuelles Node-Gyp-Problem mit VS2015 gelöst. Ich musste "npm install -g sigmund" und "lru-cache" auch manuell von Github installieren. Das ursprüngliche Problem bestand darin, "Utf-8-Validate" als Abhängigkeit von einer Aurelia-Probe zu installieren.
Mathieu Leblanc

10

Ich habe das Problem mit dem Fehler festgestellt:

gyp ERR! configure error

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

Hier ist was ich tat und was schließlich funktionierte.

Haftungsausschluss : Ich bin gerade dabei, Node, Angular nach vielen Jahren in der Java- und Linux-Welt unter anderem in die Hände zu bekommen ...

Umgebungsbeschreibung : Windows 8.1 64-Bit; Cygwin; Cygwin Bash Shell

Der verwendete Befehl führte zu einem Fehler : npm install -g karma

Fehler : gyp ERR! Fehler gyp ERR konfigurieren! Stack-Fehler: Die ausführbare Python-Datei "Python" kann nicht gefunden werden. Sie können die PYT HON-Umgebungsvariable festlegen.

Entdeckung : 'Welche Python' in der Bash-Shell zeigt deutlich '/ usr / bin / python'. Das ist nervig!

Lösung : Dies gilt nur für Benutzer, die eine ähnliche Umgebung wie ich verwenden, dh Cygwin und Bash Shell verwenden. Ich hoffe, es hilft auch in anderen Umgebungen, aber denken Sie daran, dass Ihr Teekessel möglicherweise etwas anders aussieht als meiner.

  1. Zunächst muss die Variable $ PYTHON shell env in .bashrc unter Verwendung des expliziten Windows-Pfads zur ausführbaren Python-Datei und nicht des von cygwin verwendeten Unix-ähnlichen Root-Pfads (/ usr / bin) festgelegt werden.
  2. Zweitens, und dieser hat viel Versuch / Irrtum gekostet und hier ist das Gotcha! Cygwin installiert Python unter / usr / bin (was unter Windows wirklich ein Spiegel von / bin ist) mit der Version, dh (in meinem System) /usr/bin/python2.7.exe, und fügt dann einen Link / usr / bin / hinzu. python -> python2.7.exe. Das Problem ist, dass gyp diesem Link nicht folgen kann und immer wieder den nervigen Fehler gibt, dass es Python nicht finden kann, obwohl Sie es gut über die Shell-Befehlszeile finden können.
  3. Fügen Sie mit dem obigen Hintergrund nun die folgende Zeile zu Ihrer .bashrc hinzu

export PYTHON = "C: /cygwin64/bin/python2.7.exe (oder was auch immer die Version auf Ihrem System ist)"

  1. Jetzt beziehen Sie Ihre .bashrc aus Ihrem Home-Verzeichnis (auf cygwin) -> 'source .bashrc'

Sie sollten jetzt in Ordnung sein und Gyp wird die ausführbare Python-Datei finden.

Ich hoffe, dies hilft jemandem, über das gleiche oder ein ähnliches Problem zu stolpern.


Dies ist, was mein Problem mit GitBash 2.6.3 unter Windows gelöst hat
Scott Offen

3

sollte in der Lage sein, alle Node-Gyp-Abhängigkeiten mit Chocolatey für Windows zu erhalten

choco install python2
choco install visualstudioexpress2013windowsdesktop

2

JavaScript-Umgebung einrichten

1. Installieren Sie Node.js.

Laden Sie das Installationsprogramm von der NodeJs-Website herunter. Sie können die neueste V6 herunterladen

2. Aktualisieren Sie Npm

Npm wird zusammen mit Node.js installiert. Also mach dir keine Sorgen.

3. Installieren Sie Anaconda

Anaconda ist die führende Open Data Science-Plattform von Python. Die Open Source-Version von Anaconda ist eine Hochleistungsdistribution von Python. Es kann Ihnen helfen, Ihre Python-Abhängigkeit zu verwalten. Sie können es verwenden, um im weiteren Sinne eine andere Python-Umgebung zu erstellen, wenn Sie damit berühren möchten.

Node-Gyp unterstützt nur> = Python 2.7 und <Python 3.0

Installieren Sie einfach die Version 2.7

4. Installieren Sie Node-gyp

Sie können installieren mit  npm:

$ npm install -g node-gyp

Sie müssen außerdem Folgendes installieren:

  • Unter Windows:

    • Option 1: Installieren Sie alle erforderlichen Tools und Konfigurationen mithilfe der Windows-Build-Toolsnpm install --global --production windows-build-tools  von Microsoft   mithilfe einer PowerShell oder CMD.exe mit  erhöhten Rechten (als Administrator ausführen).

    • Option 2: Tools und Konfiguration manuell installieren:

    • Visual C ++ Build-Umgebung:

      • Option 1: Installieren Sie  Visual C ++ Build Tools  mit der   Option Standardinstallation .
      • Option 2: Installieren Sie  Visual Studio 2015  (oder ändern Sie eine vorhandene Installation) und wählen Sie   während des Setups Common Tools für Visual C ++ aus . Dies funktioniert auch mit den kostenlosen Community- und Express for Desktop-Editionen.

      💡 [Nur Windows Vista / 7] erfordert  .NET Framework 4.5.1

    • Starten Sie cmd, npm config set msvs_version 2015

    Wenn die oben genannten Schritte bei Ihnen nicht funktioniert haben, finden Sie   weitere Tipps in den Microsoft Node.js-Richtlinien für Windows .

Wenn Sie mehrere Python-Versionen installiert haben, können Sie feststellen, welche Python-Version  node-gyp verwendet wird, indem Sie die Variable '--python' festlegen:

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

Wenn über  node-gyp aufgerufen wird  npm und  Sie mehrere Versionen von Python installiert haben, können Sie  npmden Python-Konfigurationsschlüssel auf den entsprechenden Wert setzen:

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

Zukünftiges Update für Node.js und npm

Laden Sie das Installationsprogramm von der offiziellen Website herunter und installieren Sie es direkt. Das Installationsprogramm hilft Ihnen automatisch beim Entfernen alter Dateien.

npm update npm

Zukünftiges Update für Python

conda update --all


1

Für Cygwin-Benutzer:

Das Python-Problem bei der Verwendung npmeiner sofort einsatzbereiten Cygwin-Installation besteht darin, dass aufgrund der unvollständigen Überprüfung des Codes node-gypein irreführender Fehler auftritt ../npm/node_modules/node-gyp/lib/configure.js.

Es liegt daran, wie Cygwin mit symbolischen Links umgeht. Bei einer sofort einsatzbereiten Installation funktioniert dies nicht ordnungsgemäß. Daher werden die Fehlermeldungen aus dem obigen Code irreführend, da sie sich über den PYTHONPfad und nicht über das Vorhandensein python.exe(oder den Link) der Datei selbst beschweren .

Es gibt (mindestens) zwei Möglichkeiten, dies zu beheben.

  1. Installieren Sie das Cygwin-Paket cygutils-extraund verwenden Sie es winln.
  2. Verwenden Sie natives Windows CMD im Admin-Modus.

Für ( 1 ) können Sie einen richtigen Symlink aus der Cygwin-Shell erstellen, indem Sie die folgenden Schritte ausführen:

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

(Vorausgesetzt, Sie führen die Cygwin-Shell als Administrator aus.) Die Verwendung apt-cygwird empfohlen und kann in verschiedenen Formen auf github gefunden werden.


Für ( 2 ) lautet die Auflösung für sofort einsatzbereite Cygwin-Benutzer wie folgt:

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

Das Ergebnis sollte folgendermaßen aussehen:

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

Für Windows

Überprüfen Sie den Python-Pfad in der Systemvariablen. Für npm-Plugins muss Node-Gyp installiert sein.

Öffnen Sie die Eingabeaufforderung mit Administratorrechten und führen Sie den folgenden Befehl aus.

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

npm install --global node-gyp


0

gyp ERR! Fehler gyp ERR konfigurieren! Stack-Fehler: Die ausführbare Python-Datei "Python" kann nicht gefunden werden. Sie können die PYT HON-Umgebungsvariable festlegen.

Dies bedeutet die Python-Umgebung. Die Variable sollte in meinem Fall auf die ausführbare Python-Datei verweisen: SET PYTHON=C:\work\_env\Python27\python.exe


0

Für mich war die Lösung:

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

Die Frage ist bereits beantwortet, aber diese funktionierten in meinem Fall, bei dem es sich um ein alpines Linux-basiertes Betriebssystem handelt, nicht. Vielleicht hilft dies jemand anderem.

Ich habe auch den gleichen Fehler bekommen

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

Fügen Sie dies also einfach in einer Zeile hinzu, wenn Sie in Dockerfile arbeiten oder es im Betriebssystem installieren

apk add --no-cache python nodejs

in Ubuntu

sudo apt-get install python3.6

Hinweis: Knotenversion: 8


0

Installieren Sie den Node-Gyp- und C ++ - Compiler (gcc-c ++).


Können Sie erklären, wie dies eine bessere Antwort ist als die anderen 11, die bereits hier sind?
Stephen Rauch

Hallo Stephan, sicher ist es nicht das bessere, aber ja, in minimalen Schritten hat das für mich funktioniert.
Brajesh Jaishwal

0

Behoben mit Downgrade von Node von v12.8.1 auf v11.15.0 und alles erfolgreich installiert

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.