Я попадаю в кодовую базу Node.js, которая требует, чтобы я загрузил несколько зависимостей через NPM, а именно jQuery.
При попытке запустить npm install jquery
я получаю эту ошибку:
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 jquery@1.8.3 { [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! contextify@0.1.4 install: `node-gyp rebuild`
npm ERR! `cmd "/c" "node-gyp rebuild"` failed with 1
npm ERR!
npm ERR! Failed at the contextify@0.1.4 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! <npm-@googlegroups.com>
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>
Похоже, что ошибка связана с отсутствующей установкой Python. Ну, я установил Python, установил переменную, перезагрузил и все еще ошибка.
Любой ключ к тому, что мне не хватает?
PYTHON=C:\Python27\Python.exe
в окне cmd и перезагрузили компьютер, настройка была потеряна.cmd.exe
окне , прежде чем пытатьсяnpm
команду, это либоpython
или%PYTHON%
запустить интерпретатор Python? Если нет, вы не настроили это правильно.Ответы:
Ваша проблема в том, что вы не установили переменную окружения.
Ошибка ясно говорит об этом:
И в своем комментарии вы говорите, что сделали это:
Это хорошо, но это не устанавливает
PYTHON
переменную, она устанавливаетPYTHONPATH
переменную.Между тем, только использование
set
команды влияет только на текущийcmd
сеанс. Если вы перезагрузитесь после этого, как вы и сказали, вы получите совершенно новыйcmd
сеанс, в котором не установлена эта переменная.Есть несколько способов постоянной установки переменных среды - самый простой - в Системной панели управления в XP, которая, конечно, отличается в Vista, снова отличается в 7 и снова отличается в 8, но вы можете поискать ее в Google.
В качестве альтернативы, просто сделайте
set
прямо передnpm
командой, без перезагрузки между ними.Вы можете проверить, правильно ли вы все сделали, выполнив то же самое, что пытается сделать скрипт конфигурации: перед запуском
npm
попробуйте запустить%PYTHON%
. Если вы все сделали правильно, вы получите интерпретатор Python (из которого вы можете немедленно выйти). Если вы получили ошибку, вы не сделали это правильно.Есть две проблемы с этим:
Во-первых, вы устанавливаете
PYTHON
на;D:\Python
. Эта лишняя точка с запятой подходит для списка путей, разделенных точкой с запятой, напримерPATH
илиPYTHONPATH
, но не для одного значения типаPYTHON
. И аналогично, добавление нового значения к существующему значению - это то, что вы хотите, когда хотите добавить другой путь в список путей, но не для одного значения. Итак, вы просто хотитеset PYTHON=D:\Python
.Во-вторых,
D:\Python
это не путь к вашему интерпретатору Python. Это что - то вродеD:\Python\Python.exe
, илиD:\Python\bin\Python.exe
. Найдите правильный путь, убедитесь, что он работает сам по себе (например, введитеD:\Python\bin\Python.exe
и убедитесь, что вы получаете интерпретатор Python), затем установите переменную и используйте ее.Так:
Или, если вы хотите сделать его постоянным, сделайте эквивалент в Панели управления.
источник
D
диске у меня есть Python на случай, если вам интересно. В очередной раз благодарим за помощь.set
какой-то причине выполнить команду в окне команд NPM, а затем запуститьmpm install jquery
команду сразу после этого. Если бы я делал их отдельно, по какой-то причине это не сработало.set
команда влияет только на текущееcmd
окно, поэтому вы должны сделать это перед запускомnpm
в том же окне. Если вы хотите установить переменные среды более постоянно, это находится в Системной панели управления или эквивалентно для вашей версии Windows.Если у вас не установлен python вместе со всеми зависимостями узла-гипа, просто откройте Powershell или Git Bash с правами администратора и выполните:
а затем установить пакет:
после установки у вас будут загружены все зависимости node-gyp, но вам все еще нужна переменная окружения. Проверка Python действительно находится в правильной папке:
Обратите внимание - он использует Python 2.7, а не 3.x, так как он не поддерживается
Если он не стонет, создайте свою (пользовательскую) переменную окружения:
перезапустите cmd и убедитесь, что переменная существует, с помощью
set PYTHON
которой следует вернуть переменнуюНаконец, повторно применить
npm install <module>
источник
setx PYTHON $env:USERPROFILE\.windows-build-tools\python27\python.exe
Для меня после установки windows-build-tools с комментарием ниже
запустить код ниже
работал.
источник
Вот руководство, которое решило многие из этих проблем для меня.
http://www.steveworkman.com/node-js/2012/installing-jsdom-on-windows/
В частности, я помню версию Python как важную. Убедитесь, что вы установили 2.7.3 вместо 3-х.
источник
Один и / или несколько из них должны помочь:
Добавьте
C:\Python27\
к своейPATH
переменной (учитывая, что в этом каталоге установлен Python)Как установить
PATH
переменную env: http://www.computerhope.com/issues/ch000549.htmПерезапустите консоль и / или Windows после установки переменной.
В том же разделе, что и выше («Переменные среды»), добавьте новую переменную с именем
PYTHON
и значением.C:\Python27\python.exe
Перезагрузите консоль и / или Windows после установки переменной.
Откройте командную строку Windows (
cmd
) в режиме администратора .Измените каталог на путь установки Python:
cd C:\Python27
сделайте символическую ссылку необходимой для некоторых установок:
mklink python2.7.exe python.exe
Обратите внимание, что у вас должен быть Python 2.x, а не 3.x , для запуска
node-gyp
установок на основе!Текст ниже говорит о Unix, но версия Windows также требует Python 2.x:
Эта статья также может помочь: https://github.com/nodejs/node-gyp#installation
источник
У меня была такая же проблема, и ни один из этих ответов не помог. В моем случае переменная PYTHON была установлена правильно. Однако python был установлен слишком глубоко, то есть имеет слишком длинный путь. Итак, я сделал следующее:
И это все!
источник
Это помогло: https://www.npmjs.com/package/node-gyp
Я следовал за этими шагами:
затем:
источник
Существует несколько способов решения этой проблемы: 1) запустите командную строку как «администратор».
если первое решение не решает вашу проблему, попробуйте следующее:
2) откройте командную строку, когда администратор вставит следующую строку кода и нажмите Enter:
источник
TL; DR Сделайте копию или псевдоним вашего python.exe с именем python2.7.exe
Мой питон 2.7 был установлен как
Я всегда получаю эту ошибку независимо от того, как я установил (и проверил) переменную PYTHON env:
Причиной этого было то, что в файле configure.js node-gyp исполняемый файл python был разрешен следующим образом:
var python = gyp.opts.python || process.env.PYTHON || 'python'
И оказалось, что gyp.opts.python имеет значение 'python2.7', таким образом переопределяя process.env.PYTHON.
Я решил эту проблему, создав псевдоним для исполняемого файла python.exe с именем node-gyp, который искал:
D:\app\Python27>mklink python2.7.exe python.exe
Вам нужны права администратора для этой операции.
источник
У меня из командной строки работал админ:
Установка windows-build-tools (это может занять 15-20 минут):
Добавление / обновление переменной среды:
Установка узла-гипа:
Изменение имени исполняемого файла с Python на Python2.7.
npm install module_name --save
источник
я не могу не упомянуть об этом. Если вы используете Python3 и не работаете с node-gyp, то мне грустно говорить, что node-gyp в настоящее время не поддерживает python3.
Вот ссылка для вас: https://github.com/nodejs/node-gyp/issues/1268 https://github.com/nodejs/node-gyp/issues/193
источник
Это самый простой способ позволить NPM сделать все за вас
источник
Правильный путь: 1) Загрузите и установите python 2.7.14 отсюда . 2) Установите переменную окружения для Python отсюда .
сделано!
примечание: пожалуйста, установите переменную среды соответственно. Я ответил здесь за окна.
источник
Я столкнулся с той же проблемой, пытаясь установить node-sass@4.9.4 .
И, посмотрев текущую официальную документацию и прочитав ответы выше, я заметил, что вам не обязательно устанавливать ни node-gyp, ни инструменты Windows-build. Вот что здесь сказано об установке node-gyp на windows . Помните, что node-gyp участвует в процессе установки node-sass. И вам не нужно переустанавливать другую версию Python.
Это спаситель, настройте путь Python, который должен искать «npm» при установке любых пакетов, требующих инструментов сборки.
Я установил python3.6.3, на Windows-7, там.
источник
node-sass@4.9.4
, когда я переключился наwindows-10
использованиеnode@10.6.3
иyarn@1.19.1
Python36/python
должен быть путь к вашему исполняемому файлу Python.exe
hold Shift, and Right-Click
и введите это:npm config set python
Почему бы не скачать установщик Python здесь ? Это сделает работу за вас, когда вы проверяете путь установки
источник
Для меня эти шаги решили проблему:
1- Запуск этого cmd от имени администратора:
npm install --global --production windows-build-tools
2- Затем выполняется
npm rebuild
после завершения 1-го шага (особенно после завершения установки Python 2.7, которая была основной причиной проблемы).источник
Вот правильная команда: set path =% path%; C: \ Python34 [Заменить на правильный путь вашей установки Python]
У меня была такая же проблема, и я просто решил это так.
Как отмечали некоторые другие люди, это изменчивая конфигурация, она работает только для текущего сеанса cmd, и (очевидно) вы должны указать свой путь перед запуском npm install.
Надеюсь, это поможет.
источник
Не нужно переустанавливать, это исключение выдается скриптом node-gyp, затем попытайтесь пересобрать. Достаточно переменной среды установки, как в моем случае:
источник
Если вы пытаетесь использовать это на Cygwin, то вам нужно следовать инструкциям в этом ответе. (Это проблема, как Cygwin обрабатывает символические ссылки Windows.)
источник
Пример: pg_config не исполняемый / ошибка node-gyp
Решение: В Windows просто попробуйте добавить PATH Env -> C: \ Program Files \ PostgreSQL \ 12 \ bin
Работайте для меня, теперь я могу использовать npm, например, pg-обещание или другие зависимости.
источник
pg-promise
тебя это не нужно. Вы, вероятно, были захвачены этим . Просто используйте последнюю версию, и у вас все будет в порядке, не нужно никаких дополнительных вещей;)Для меня проблема заключалась в том, что я использовал последнюю версию узла, а не
LTS
версию, которая является стабильной версией и рекомендуется для большинства пользователей.Использование
LTS
версии решило проблему.Вы можете скачать здесь:
Версия LTS
Текущая последняя версия
источник