NodeJS - Ошибка при установке с помощью 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>

Я устанавливаю определенный скрипт NodeJS - Caress . Но я не в состоянии. Я использую Windows 8.1, может кто-нибудь сказать мне, с какой проблемой я сталкиваюсь, и почему эта установка не работает. Кажется, есть проблема с зависимостью buffertools, насколько я могу судить. Не знаете, как это исправить?

Если я загружаю сборку из github и помещаю ее в нод-модули, кажется, ничего не работает. когда я пытаюсь начать, используя запуск npm, или во время реализации либо.

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>

переменная env не установлена. Dsnt работать с этим либо. pastebin.com/jBXwi63a
Шаурья Чаудхури

Ответы:


365
Как указано ниже, вам может не потребоваться установка VS на Windows, проверьте это

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

ОБНОВЛЕНО 02/2016

Некоторые плагины npm должны node-gypбыть установлены.

Однако node-gypу него есть свои зависимости ( со страницы github ):

введите описание изображения здесь

ОБНОВЛЕНО 09/2016

Если вы используете Windows, теперь вы можете установить все node-gypзависимости одной командой (ПРИМЕЧАНИЕ. Запуск от имени администратора в Windows PowerShell):

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

а затем установить пакет

 $ npm install --global node-gyp

ОБНОВЛЕНО 06/2018

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

Удалите каталог $ HOME / .node-gyp и попробуйте снова.

Смотрите полную документацию здесь: node-gyp


Поэтому, когда я устанавливаю его на Linux-коробку. Что я делаю вместо MS vc ++? И я получаю это, когда я сделал все то, что вы упомянули. - pastebin.com/LgJEKFFS
Шаурья Чаудхури

Правильный набор инструментов для компилятора C / C ++, например, GCC:sudo apt-get install g++
Илан Фрумер

1
@ IlanFrumer О, я бы предпочел Linux в любое время, но иногда мне приходится устанавливать приложения на сервер клиента.
Спок

4
Разве это не будет решено установкой не зависящего от VS компилятора C ++ в Windows? Такую вещь невозможно найти? Я запутался.
Jcollum

1
Спасибо за поддержку, ребята, работает на меня. Просто совет: запускать от имени администратора в Windows
MuriloMittmann

16

Убедитесь, что у вас есть все необходимое программное обеспечение для запуска node-gyp:

Вы можете настроить версию Visual Studio, используемую с node-gypпомощью переменной среды, чтобы избежать необходимости устанавливать --msvs_version=2012свойство каждый раз, когда вы выполняете установку npm.

Примеры:

  • набор GYP_MSVS_VERSION=2012для Visual Studio 2012
  • набор GYP_MSVS_VERSION=2013e(«е» означает БЕСПЛАТНОЕ «экспресс-издание»)

Полный список см. На странице https://github.com/joyent/node/blob/v0.10.29/tools/gyp/pylib/gyp/MSVSVersion.py#L209-294.

Это по-прежнему болезненно для пользователей Windows NodeJS, так как предполагает, что у вас установлена ​​копия Visual Studio, и у многих конечных пользователей ее никогда не будет. Поэтому я лоббирую Joyent, чтобы они рекомендовали включать веб-сокеты как часть узла CORE, а также, возможно, поставлять компилятор GNU gcc как часть установки NodeJS, чтобы мы могли навсегда решить эту проблему.

Не стесняйтесь добавлять свой голос на:


4
У меня только (наконец) было это работает с VS 2015 Community Edition. Я в окне 10, 64 бита. Я использовал «npm config set msvs_version 2015 -g» в командной строке (после установки VS, конечно). Большинство людей, которые сталкивались с этой проблемой в течение долгого времени, предлагали VS2010, а иногда и до 2013 года, но я решил, по крайней мере, мою текущую проблему с узлом в VS2015. Мне также пришлось «npm установить -g sigmund» и вручную установить «lru-cache» из Github. Первоначальная проблема заключалась в том, чтобы установить Utf-8-Validate в качестве зависимости для образца Aurelia.
Матье Лебланк,

10

Я столкнулся с проблемой с ошибкой:

gyp ERR! configure error

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

Вот что я делал и что в итоге сработало.

Отказ от ответственности : я только попадаю в Node, Angular после многих лет в мире Java, Linux и других ...

Описание среды : Windows 8.1 64-битная; Cygwin; Cygwin Bash Shell

Используемая команда привела к ошибке : npm install -g karma

Ошибка : ошибка ERR! ошибка конфигурации GYP ERR! Ошибка стека: Не удается найти исполняемый файл Python "python", вы можете установить переменную env PYT HON.

Обнаружение : «какой питон» в оболочке bash ясно показывает «/ usr / bin / python». Теперь это раздражает!

Решение : Это применимо только к тем, кто использует среду, похожую на ту, которая у меня есть, то есть использует cygwin и bash shell. Надеюсь, что это поможет и в других условиях, но имейте в виду, что ваш чайник может выглядеть немного иначе, чем мой.

  1. Во-первых, нужно установить переменную env оболочки $ PYTHON в .bashrc, используя явный путь windows к исполняемому файлу python, а не unix-подобный корневой путь (/ usr / bin), используемый cygwin.
  2. Во-вторых, и это заняло много проб / ошибок, и вот что надо! Cygwin устанавливает python в / usr / bin (который на самом деле является зеркалом / bin в windows) с версией, т.е. (в моей системе) /usr/bin/python2.7.exe, а затем добавляет ссылку / usr / bin / python -> python2.7.exe. Проблема в том, что gyp не может перейти по этой ссылке и продолжает выдавать досадную ошибку, что он не может найти python, даже если вы можете найти его просто отлично из командной строки оболочки.
  3. С этим фоном теперь добавьте следующую строку в ваш .bashrc

export PYTHON = "C: /cygwin64/bin/python2.7.exe (или любой другой версии в вашей системе)"

  1. Теперь загрузите ваш .bashrc из вашего домашнего каталога (на cygwin) -> 'source .bashrc'

Теперь у вас все будет хорошо, и Gyp найдет исполняемый файл Python.

Я надеюсь, что это поможет кому-то споткнуться о той же или подобной проблеме.


Это то, что решило мою проблему с помощью GitBash 2.6.3 на Windows
Скотт Оффен

3

должен быть в состоянии получить все зависимости от узла-gyp с chocolatey для Windows

choco install python2
choco install visualstudioexpress2013windowsdesktop

2

Настройка среды JavaScript

1. Установите Node.js

Загрузите установщик на веб-сайте NodeJs. Вы можете скачать последнюю версию V6

2. Обновление Npm

Npm устанавливается вместе с Node.js. Так что не волнуйся.

3. Установите Анаконду

Anaconda является ведущей платформой для открытых данных на платформе Python. Версия с открытым исходным кодом Anaconda - это высокопроизводительный дистрибутив Python. Это может помочь вам управлять зависимостями Python. Вы можете использовать его для создания другой среды Python в дальнейшем, если вы хотите с ней связаться.

Поддержка только Node-Gyp> = Python 2.7 и <Python 3.0

Так что просто установите версию 2.7

4. Установите Node-gyp

Вы можете установить с  npm:

$ npm install -g node-gyp

Вам также необходимо установить:

  • В Windows:

    • Вариант 1. Установите все необходимые инструменты и конфигурации с помощью средств Windows-build-инструментов Microsoft,   используя  npm install --global --production windows-build-tools расширенный PowerShell или CMD.exe (запускается от имени администратора).

    • Вариант 2. Установите инструменты и настройку вручную:

    • Среда сборки Visual C ++:

      • Вариант 1. Установите  инструменты сборки Visual C ++  с помощью параметра « Установка по  умолчанию»  .
      • Вариант 2. Установите  Visual Studio 2015  (или измените существующую установку) и выберите  Общие инструменты для Visual C ++  во время установки. Это также работает с бесплатными выпусками Community и Express for Desktop.

      💡 [только для Windows Vista / 7] требуется  .NET Framework 4.5.1

    • Запустите cmd, npm config set msvs_version 2015

    Если указанные выше действия не помогли вам, ознакомьтесь  с рекомендациями Microsoft по Node.js для Windows,  чтобы получить дополнительные советы.

Если у вас установлено несколько версий Python, вы можете определить, какая версия Python  node-gyp используется, установив переменную '--python':

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

Если  node-gyp вызывается с помощью  npm и у  вас установлено несколько версий Python, вы можете установить  npmключ конфигурации 's' python 'в соответствующее значение:

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

Будущее обновление для Node.js и npm

Скачайте установщик с их официального сайта и установите его напрямую. Установщик автоматически поможет вам удалить старые файлы.

npm update npm

Будущее обновление для Python

conda update --all


1

Для пользователей Cygwin:

Проблема с использованием Python при npmстандартной установке Cygwin заключается в том node-gyp, что из-за неполной проверки в коде возникает ошибочная ошибка../npm/node_modules/node-gyp/lib/configure.js .

Это связано с тем, как Cygwin обрабатывает символические ссылки. Это не делает это должным образом при установке из коробки. Таким образом, сообщения об ошибках из вышеприведенного кода вводят в заблуждение, поскольку они жалуются на PYTHONпуть, а не на существование python.exe(или ссылку) самого файла.

Есть (по крайней мере) 2 способа решить эту проблему.

  1. Установка пакета Cygwin cygutils-extraи использование winln.
  2. Используйте родной Windows CMD в режиме администратора.

Для ( 1 ) вы можете создать правильную символическую ссылку из оболочки Cygwin, выполнив следующие действия:

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

(Также предполагается, что вы используете оболочку Cygwin от имени администратора.) apt-cygРекомендуется использовать ее и можно найти в различных формах на github.


Для ( 2 ) разрешение для готовых пользователей Cygwin:

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

Результат должен выглядеть так:

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

Для окон

Проверьте путь Python в системной переменной. Плагины npm должны быть установлены как node-gyp.

Откройте командную строку с правами администратора и выполните следующую команду.

npm install --global - производство windows-build-tools

npm install --global node-gyp


0

Гипер ERR! ошибка конфигурации GYP ERR! Ошибка стека: Не удается найти исполняемый файл Python "python", вы можете установить переменную env PYT HON.

Это означает, что Python env. переменная должна указывать на исполняемый файл python, в моем случае: SET PYTHON=C:\work\_env\Python27\python.exe


0

для меня решение было:

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

На вопрос уже ответили, но они не работали в моем случае, который является ОС на базе Alpine Linux, так что, возможно, это поможет кому-то еще.

Я тоже получаю ту же ошибку

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

Так что исправьте одной строкой, просто добавьте это, если вы работаете в Dockerfile или устанавливаете его в ОС

apk add --no-cache python nodejs

в убунту

sudo apt-get install python3.6

Примечание: версия узла: 8


0

установить компилятор node-gyp и c ++ (gcc-c ++).


Можете ли вы объяснить, как это лучший ответ, чем остальные 11 уже здесь?
Стивен Раух

Привет, Стефан, конечно, это не лучший вариант, но да в минимальных шагах, которые работали для меня.
Brajesh Jaishwal

0

Исправлено понижение Node с v12.8.1 до v11.15.0 и все успешно установлено

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.