NodeJS - Błąd instalacji z 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>

Instaluję pewien skrypt NodeJS - Caress . Ale nie jestem w stanie. Korzystam z systemu Windows 8.1, czy ktoś może mi powiedzieć, z jakim problemem mam do czynienia i dlaczego ta instalacja nie działa. Wygląda na to, że jest problem z zależnością buforów, o ile mogę myśleć. Nie wiesz, jak to naprawić?

Jeśli pobiorę kompilację z github i umieszczę ją w modułach węzłów, nic nie będzie działać. kiedy próbuję zacząć, używając npm start lub podczas implementacji albo.

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>
Shaurya Chaudhuri
źródło
zmienna env nie została ustawiona. dsnt też z tym pracuje. pastebin.com/jBXwi63a
Shaurya Chaudhuri
możliwy duplikat
uruchamiania

Odpowiedzi:

365
Jak skomentowano poniżej, może nie być konieczne instalowanie VS w systemie Windows, sprawdź to

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

AKTUALIZACJA 02/2016

Niektóre wtyczki npm muszą node-gypzostać zainstalowane.

Jednak node-gypma własne zależności ( od strony github ):

wprowadź opis zdjęcia tutaj

AKTUALIZACJA 09/2016

Jeśli używasz systemu Windows, możesz teraz zainstalować wszystkie node-gypzależności za pomocą jednego polecenia (UWAGA: Uruchom jako administrator w programie Windows PowerShell):

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

a następnie zainstaluj pakiet

 $ npm install --global node-gyp

AKTUALIZACJA 06/2018

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

Usuń katalog $ HOME / .node-gyp i spróbuj ponownie.

Zobacz pełną dokumentację tutaj: node-gyp

Ilan Frumer
źródło
Więc kiedy instaluję to na Linux-ie. Co mam zrobić zamiast ms vc ++? Rozumiem to, kiedy zrobiłem wszystkie rzeczy, o których wspomniałeś. - pastebin.com/LgJEKFFS
Shaurya Chaudhuri
Właściwy sudo apt-get install g++
zestaw
1
@IlanFrumer oh wolałbym Linuksowi każdej chwili, ale czasami muszę instalować aplikacji na serwerze klienta ..
Spock
4
Czy nie można tego rozwiązać, instalując w systemie Windows kompilator C ++ niezależny od VS? Czy czegoś takiego nie można znaleźć? Jestem zmieszany.
jcollum
1
Dziękuję za wsparcie chłopaki, działa dla mnie. Tylko wskazówka: uruchom jako administrator w
systemie
16

Upewnij się, że masz całe wymagane oprogramowanie do uruchomienia node-gyp:

Możesz skonfigurować wersję programu Visual Studio używaną przez node-gypzmienną środowiskową, aby uniknąć konieczności ustawiania --msvs_version=2012właściwości za każdym razem, gdy wykonujesz instalację npm.

Przykłady:

  • zestaw GYP_MSVS_VERSION=2012dla Visual Studio 2012
  • zestaw GYP_MSVS_VERSION=2013e(„e” oznacza BEZPŁATNĄ „edycję ekspresową”)

Pełna lista znajduje się na stronie - https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294

Jest to nadal bolesne dla użytkowników Windows NodeJS, ponieważ zakłada, że ​​masz zainstalowaną kopię programu Visual Studio i wielu użytkowników końcowych nigdy tego nie będzie. Dlatego lobbuję Joyent, aby zachęcił ich do włączenia gniazd sieciowych jako części węzła CORE, a także do ewentualnego dostarczenia kompilatora GNU gcc jako części instalacji NodeJS, abyśmy mogli trwale rozwiązać ten problem.

Dodaj swój głos na:

Tony O'Hagan
źródło
4
Właśnie (nareszcie) współpracowałem z wersją społecznościową VS 2015. Jestem w systemie Windows 10, 64 bity. Użyłem „npm config set msvs_version 2015 -g” w wierszu polecenia (oczywiście po instalacji VS). Większość osób uporających się z tym problemem z czasem zasugerowało VS2010, a czasem nawet do 2013 r., Ale rozwiązałem przynajmniej mój obecny problem z węzłem gyp z VS2015. Musiałem także „npm install -g sigmund” i ręcznie zainstalować „lru-cache” z Github. Pierwotnym problemem było zainstalowanie „Utf-8-Validate”, jako zależności próbki Aurelia.
Mathieu Leblanc
10

Wystąpił problem z błędem:

gyp ERR! configure error

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

Oto co robiłem i co w końcu zadziałało.

Oświadczenie : Właśnie dostaję ręce do Node, Angular po wielu latach w świecie Java, Linux, między innymi ...

Opis środowiska : Windows 8.1 64-bit; Cygwin; cygwin bash shell

Użyto polecenia, które doprowadziło do błędu : npm install -g karma

Błąd : gyp ERR! skonfiguruj błąd gyp ERR! Błąd stosu: Nie można znaleźć wykonywalnego Pythona „python”, można ustawić zmienną env PYT HON.

Odkrycie : „Który python” w powłoce bash wyraźnie pokazuje „/ usr / bin / python”. To jest denerwujące!

Rozwiązanie : Dotyczy to tylko tych, którzy korzystają ze środowiska podobnego do tego, co mam, tj. Używają powłoki cygwin i bash. Mam nadzieję, że pomaga to również w innych środowiskach, ale pamiętaj, że czajnik może wyglądać nieco inaczej niż mój.

  1. Po pierwsze, należy ustawić zmienną env powłoki $ PYTHON w .bashrc, używając jawnej ścieżki systemu Windows do pliku wykonywalnego Pythona, a nie uniksowej ścieżki katalogu głównego (/ usr / bin) używanej przez cygwin.
  2. Po drugie, a ten wymagał wielu prób / błędów i oto gotcha! Cygwin instaluje Pythona pod / usr / bin (który jest tak naprawdę lustrem / bin w systemie Windows) z wersją, tj. (W moim systemie) /usr/bin/python2.7.exe, a następnie dodaje link / usr / bin / python -> python2.7.exe. Problem polega na tym, że gyp nie może podążać za tym linkiem i wciąż daje denerwujący błąd, że nie może znaleźć Pythona, nawet jeśli można go znaleźć w porządku z linii poleceń powłoki.
  3. Z powyższym tłem dodaj teraz następujący wiersz do .bashrc

export PYTHON = "C: /cygwin64/bin/python2.7.exe (lub jakakolwiek wersja w twoim systemie)"

  1. Teraz źródło .bashrc z katalogu domowego (na cygwin) -> 'source .bashrc'

Powinieneś już być w porządku, a gyp znajdzie plik wykonywalny Pythona.

Mam nadzieję, że to pomoże komuś natknąć się na ten sam lub podobny problem.

Andy
źródło
To rozwiązało mój problem z użyciem GitBash 2.6.3 w systemie Windows
Scott Offen
3

powinien być w stanie uzyskać wszystkie zależności węzłów-gyp z Chocolatey dla Windows

choco install python2
choco install visualstudioexpress2013windowsdesktop
tarikakyol
źródło
2

Skonfiguruj środowisko JavaScript

1. Zainstaluj Node.js

Pobierz instalator ze strony NodeJs. Możesz pobrać najnowszą wersję V6

2. Zaktualizuj Npm

Npm jest instalowany razem z Node.js. Więc nie martw się.

3. Zainstaluj Anaconda

Anaconda to wiodąca platforma do nauki danych otwartych obsługiwana przez Python. Wersja Anaconda typu open source to wysokowydajna dystrybucja Pythona. Może to pomóc w zarządzaniu zależnością od języka Python. Możesz go użyć do stworzenia innego środowiska Pythona, jeśli chcesz się z nim skontaktować.

Obsługa tylko węzłów gyp>> Python 2.7 i <Python 3.0

Więc po prostu zainstaluj wersję 2.7

4. Zainstaluj Node-gyp

Możesz zainstalować za pomocą  npm:

$ npm install -g node-gyp

Będziesz także musiał zainstalować:

  • W systemie Windows:

    • Opcja 1: Zainstaluj wszystkie wymagane narzędzia i konfiguracje za  pomocą narzędzi do kompilacji systemu  Windows za  npm install --global --production windows-build-tools pomocą podwyższonego programu PowerShell lub CMD.exe (uruchom jako administrator).

    • Opcja 2: zainstaluj narzędzia i konfigurację ręcznie:

    • Środowisko kompilacji Visual C ++:

      • Opcja 1: Zainstaluj  narzędzia do budowania Visual C ++  przy użyciu   opcji instalacji domyślnej .
      • Opcja 2: Zainstaluj  Visual Studio 2015  (lub zmodyfikuj istniejącą instalację) i wybierz  Common Tools for Visual C ++  podczas instalacji. Działa to również z bezpłatnymi edycjami Community i Express for Desktop.

      💡 [Tylko Windows Vista / 7] wymaga  .NET Framework 4.5.1

    • Uruchom cmd, npm config set msvs_version 2015

    Jeśli powyższe kroki nie zadziałały, zapoznaj się  z wytycznymi Microsoft Node.js dla systemu Windows,  aby uzyskać dodatkowe wskazówki.

Jeśli masz zainstalowanych wiele wersji Pythona, możesz określić, która wersja Pythona  node-gyp używa, ustawiając zmienną „--python”:

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

Jeśli  node-gyp jest wywoływany  npm i  masz zainstalowanych wiele wersji Pythona, możesz ustawić  npmklucz konfiguracyjny „python” na odpowiednią wartość:

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

Przyszła aktualizacja dla Node.js i npm

Pobierz instalator z ich oficjalnej strony i zainstaluj go bezpośrednio. Instalator automatycznie pomoże usunąć stare pliki.

npm update npm

Przyszła aktualizacja dla Pythona

conda update --all

YoongKang Lim
źródło
1

Dla użytkowników Cygwin:

Problem z pythonem przy użyciu npmgotowej instalacji Cygwin polega na tym, że node-gypdaje błąd wprowadzający w błąd z powodu niepełnego sprawdzenia ../npm/node_modules/node-gyp/lib/configure.jskodu.

Wynika to z tego, jak Cygwin traktuje linki symboliczne. Nie robi tego poprawnie w instalacji „po wyjęciu z pudełka”. Tak więc komunikaty o błędach z powyższego kodu stają się mylące, ponieważ narzeka na PYTHONścieżkę, a nie na istnienie python.exe(lub łącze) samego pliku.

Istnieją (przynajmniej) 2 sposoby rozwiązania tego problemu.

  1. Instalowanie pakietu Cygwin cygutils-extrai korzystanie z niego winln.
  2. Używaj natywnego systemu Windows CMD w trybie administracyjnym.

Dla ( 1 ) możesz utworzyć odpowiednie dowiązanie symboliczne z poziomu powłoki Cygwin, wykonując następujące kroki:

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

(Zakładając również, że używasz powłoki Cygwin jako Administrator.) Korzystanie apt-cygjest zalecane i można je znaleźć w różnych formach na github.


W przypadku ( 2 ) rozdzielczość dla gotowych użytkowników Cygwin jest następująca:

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

Wynik powinien wyglądać następująco:

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
emigenix
źródło
1

Dla Windowsa

Sprawdź ścieżkę Pythona w zmiennej systemowej. Wtyczki npm wymagają zainstalowania node-gyp.

otwórz wiersz polecenia z uprawnieniami administratora i uruchom następujące polecenie.

npm install --global --produkcja narzędzia do kompilacji okien

instalacja npm --global node-gyp

Mahesh Gudadari
źródło
0

gyp ERR! skonfiguruj błąd gyp ERR! Błąd stosu: Nie można znaleźć wykonywalnego Pythona „python”, można ustawić zmienną env PYT HON.

Oznacza to, że środowisko en Python. zmienna powinna wskazywać na wykonywalny plik python, w moim przypadku: SET PYTHON=C:\work\_env\Python27\python.exe

Y. Aliaksei
źródło
0

dla mnie rozwiązaniem było:

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
Orr
źródło
0

Odpowiedź na to pytanie jest już udzielona, ​​ale w moim przypadku nie działały one w systemie alpejskim opartym na systemie Linux, więc może to pomaga komuś innemu.

Otrzymałem również ten sam błąd

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

Napraw to za pomocą pojedynczej linii, po prostu dodaj to, jeśli pracujesz w Dockerfile lub zainstaluj go w systemie operacyjnym

apk add --no-cache python nodejs

w ubuntu

sudo apt-get install python3.6

Uwaga: wersja węzła: 8

Adii
źródło
0

zainstaluj kompilator node-gyp i c ++ (gcc-c ++).

brajesh jaishwal
źródło
Czy możesz wyjaśnić, w jaki sposób jest to lepsza odpowiedź niż pozostałe 11 już tutaj?
Stephen Rauch
Cześć Stephan, na pewno nie jest lepszy, ale tak, w minimalnych krokach, które działały dla mnie.
brajesh jaishwal
0

Naprawiono obniżenie Węzła z wersji 12.8.1 do wersji 11.15.0 i wszystko zostało pomyślnie zainstalowane

Maksym
źródło