Node.js依存関係のWindowsでのPythonの実行


226

私は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をインストールし、変数を設定し、再起動してもエラーが発生します。

私が欠けているものについての手がかりはありますか?


1
画像の代わりにテキストとしてテキストを貼り付けることはできますか?読みにくいだけでなく(特に、既に低解像度のビットマップフォントが縮小されているため)、コピーすることはできません。
abarnert 2013

1
さらに重要なことに、再起動する前に環境変数をどのように設定しましたか?PYTHON=C:\Python27\Python.exeコマンドウィンドウで行って再起動しただけの場合、設定は失われました。
abarnert 2013

7
また、どのPythonバージョンをインストールしましたか?少なくとも古いバージョンのwafとgypでは2.xが必要ですが、それについては何も言われず、代わりに3.xをインストールすると、あらゆる種類の不可解なエラーが発生します。
abarnert 2013

コメントしてくれてありがとう。エラーをテキスト形式で投稿しました。私はv2.7を使用しています
Matt Cashatt 2013

わかりました。しかし、「より重要な」質問に答えてください。これは、テキストが意味するように、重要であるためです。また、これを自分でテストすることもできます。cmd.exeウィンドウで、npmコマンドを実行する前に、Pythonインタープリターを起動するかpython%PYTHON%起動しますか?そうでない場合は、正しく設定していません。
abarnert 2013

回答:


132

問題は、環境変数を設定しなかったことです。

エラーは明らかにこれを言います:

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

そしてあなたのコメントで、あなたはあなたがこれをしたと言います:

set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

それはすばらしいことですが、PYTHON変数を設定するのではなく、変数を設定しPYTHONPATHます。


一方、setコマンドを使用しても、現在のcmdセッションにのみ影響します。その後、リブートすると、そうしたように、cmdその変数が設定されていないまったく新しいセッションになります。

環境変数を永続的に設定する方法はいくつかあります。最も簡単なのはXPのシステムコントロールパネルです。もちろん、Vistaでは異なり、7でも異なり、8でも異なりますが、グーグルできます。

また、ちょうど行うset前に、右のnpm間に再起動せずに、コマンドを実行します。


configスクリプトが実行しようとしているのとまったく同じことを実行することにより、正しく実行したかどうかをテストできます。npm実行する前に、実行してみてください%PYTHON%。正しく実行すると、Pythonインタープリター(すぐに終了できます)が表示されます。エラーが発生した場合、それは正しく行われていません。


これには2つの問題があります。

set PYTHON=%PYTHON%;D:\Python

まず、に設定PYTHON;D:\Pythonます。その余分なセミコロンは、セミコロンで区切られたパスのリスト(PATHまたはPYTHONPATH)では問題ありませんが、などの単一の値では問題ありませんPYTHON。同様に、既存の値に新しい値を追加することは、パスのリストに別のパスを追加する場合に必要ですが、単一の値ではありません。だから、あなただけが欲しいset PYTHON=D:\Python

2つ目D:\Pythonは、Pythonインタープリターへのパスではありません。それはのようなものですD:\Python\Python.exeD:\Python\bin\Python.exe。正しいパスを見つけて、それ自体で機能することを確認し(たとえば、タイプD:\Python\bin\Python.exeしてPythonインタープリターを取得していることを確認)、変数を設定して使用します。


そう:

set PYTHON=D:\Python\bin\Python.exe

または、永続化する場合は、コントロールパネルで同等の操作を行います。


1
わかりましたので、これを取得します。MicrosoftWindows [バージョン6.1.7601] Copyright(c)2009 Microsoft Corporation。全著作権所有。C:\ Users \ Matt Cashatt> set PYTHON =%PYTHON%; D:\ Python C:\ Users \ Matt Cashatt>%PYTHON% '%PYTHON%' is not known as a internal or external command、operable program or batch file 。C:\ Users \ Matt Cashatt>
Matt Cashatt

1
また、Dドライブは私がPythonを持っている場所です。ご協力ありがとうございます。
Matt Cashatt 2013

魅力のように働いた、ありがとう!その他の場合:setなんらかの理由でNPMコマンドウィンドウでコマンドを実行し、そのmpm install jquery直後にコマンドを実行する必要がありました。私がそれらを別々にした場合、それは何らかの理由で機能しませんでした。
Matt Cashatt 2013

@MatthewPatrickCashatt:私が説明したように、setコマンドは現在のcmdウィンドウにのみ影響するのでnpm、同じウィンドウで実行する前に実行する必要があります。環境変数をより永続的に設定する場合は、システムコントロールパネルまたはWindowsのバージョンと同等です。
abarnert 2013

3
あなたは正しい道を与えた場合の参考になるだけでなく、間違った方法を説明する- \ Pythonの\ binに\ Python.exe:@abarnertは実際、その後PYTHON = Dセットこの質問への答えである
reach4thelasers

449

すべてのnode-gyp依存関係とともにpythonをインストールしていない場合は、管理者権限でPowershellまたはGit Bashを開いて実行します。

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

そしてパッケージをインストールするには:

npm install --global node-gyp

インストールすると、すべてのnode-gyp依存関係がダウンロードされますが、それでも環境変数が必要です。Pythonが実際に正しいフォルダにあることを確認します。

C:\Users\ben\.windows-build-tools\python27\python.exe 

注-サポートされていないため、3.xではなくpython 2.7を使用します

うめき声が出ない場合は、先に進んで(ユーザー)環境変数を作成します。

setx PYTHON "%USERPROFILE%\.windows-build-tools\python27\python.exe"

cmdを再起動し、変数が存在することを確認set PYTHONします。

最後に再申請 npm install <module>


1
権限エラーが発生しましたが、C:\ Users [me] \。windows-build-tools \ python.msiからpythonを手動でインストールできました。インストールでは、パスに追加するオプションがあります。(cmd / PSの再
起動)正常

エラーdhキーが小さすぎる:openssk \ ssl \ s3_clnt、c:3641
user1428716

14
windows-build-toolsをインストールするには、PowerShellをWindows 10で管理者として実行する必要があります。つまり、setxコマンドがsetx PYTHON $env:USERPROFILE\.windows-build-tools\python27\python.exe
Bae

管理者特権のコマンドプロンプトでこれらのコマンドを実行する必要がありましたが、うまくいったようです。手動でPython 3.xをインストールし、それを指すようにPYTHON環境変数を設定しても機能しませんでした。私のエラーはPythonのバージョン管理の違いに関連すると思いますか?とにかくありがとう!
JeffryHouser

16

以下のコメントでwindows-build-toolsをインストールした後の私

npm --add-python-to-path='true' --debug install --global windows-build-tools

以下のコードを実行する

npm config set python "%USERPROFILE%\.windows-build-tools\python27\python.exe"

働いています。


上記の両方の手順も必要でした。また、最初のステップである「npm install windows-build-tools」ステップを実行したときに、それを追加します(Windows 10 Pro 1803、ノードv10.15.3、npm v6.9.0)。完全に、無限にループしているように見えました(同じ出力行をコンソールにフィードバックしています)。この無限ループのように見えるのを数分間見てから、Ctrl + Cを使用して「バッチジョブを終了する」ことを選択しました。すべてが意図したとおりに機能し、ループの中断は問題とは思われませんでした。
StackOverflowUser 2019


10

それらの1つまたは複数、あるいはその両方が役立つはずです。

  1. 変数に追加C:\Python27\しますPATH(このディレクトリにPythonがインストールされていることを考慮してください)。env変数の
    設定方法PATHhttp : //www.computerhope.com/issues/ch000549.htm変数を設定した
    後、コンソールまたはWindowsを再起動します。

  2. 上記と同じセクション(「環境変数」)で、名前PYTHONと値を指定して新しい変数を追加しC:\Python27\python.exe
    ます。変数を設定した後、コンソールまたはWindowsを再起動します。

  3. 管理モードで Windowsコマンドライン(cmd)を開きます
    ディレクトリをPythonインストールパスに変更します。cd C:\Python27
    一部のインストールではsymlinkが必要になります。mklink python2.7.exe python.exe

ことに注意してください、あなたは、Python 2.xの、NOT 3.xのを持つ必要があります実行するために、node-gypベースのインストールを!

以下のテキストはUnixについて述べていますが、WindowsバージョンにはPython 2.xも必要です。

You can install with npm:

$ npm install -g node-gyp
You will also need to install:

On Unix:
python (v2.7 recommended, v3.x.x is not supported)
make
A proper C/C++ compiler toolchain, like GCC

この記事も役立つかもしれません:https : //github.com/nodejs/node-gyp#installation


8

私は同じ問題を抱えていて、これらの答えのどれも助けにはなりませんでした。私の場合、PYTHON変数は正しく設定されています。ただし、Pythonのインストールが深すぎます。つまり、パスが長すぎます。だから、私は次のことをしました:

  1. pythonをc:\ pythonに再インストールしました
  2. 環境変数PYTHONをC:\ python \ python.exeに設定します

以上です!



6

この問題を解決するにはいくつかの解決策があります。1)コマンドプロンプトを「管理者」として実行します。

最初の解決策で問題が解決しない場合は、これを試してください:

2)コマンドプロンプトを開き、管理者が次のコード行を貼り付けてEnterキーを押します。

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

5

TL; DR python2.7.exeという名前でpython.exeのコピーまたはエイリアスを作成します

私のpython 2.7は次のようにインストールされました

D:\ app \ Python27 \ python.exe

PYTHON env変数をどのように設定(および検証)しても、常にこのエラーが発生しました。

gyp ERR!スタックエラー:Python実行可能ファイル「python2.7」が見つかりません。PYTHON環境変数を設定できます。
gyp ERR!failNoPythonでスタック(C:\ Program Files \ nodejs \ node_modules \ npm \ node_modules \ node-gyp \ lib \ configure.js:103:14)

この理由は、node-gypのconfigure.jsでpython実行可能ファイルが次のように解決されたためです。

var python = gyp.opts.python || process.env.PYTHON || 'python'

そして、gyp.opts.pythonの値が 'python2.7'であることがわかり、process.env.PYTHONがオーバーライドされました。

node-gypという名前のpython.exe実行可能ファイルのエイリアスを作成して、これを解決しました:

D:\app\Python27>mklink python2.7.exe python.exe

この操作には管理者権限が必要です。


5

以下はコマンドラインから管理者として私のために働きました:

windows-build-toolsのインストール(これには15〜20分かかる場合があります):

 npm --add-python-to-path='true' --debug install --global windows-build-tools

環境変数の追加/更新:

setx PYTHON "%USERPROFILE%\.windows-build-tools\python27\python.exe"

node-gypのインストール:

npm install --global node-gyp

exeファイルの名前をPythonからPython2.7に変更します。

C:\Users\username\.windows-build-tools\python27\Python2.7

npm install module_name --save



5

これは、NPMにすべてを任せる最も簡単な方法です。

npm --add-python-to-path='true' --debug install --global windows-build-tools

4

正しい方法は1)ここからpython 2.7.14をダウンロードしてインストールします。2)Pythonの環境変数をここから設定します

できた!

注:環境変数を適宜設定してください。私は窓のためにここに答えました。


4

node-sass@4.9.4インストールしようとしたときに、同じ課題に遭遇しました

そして、現在の公式ドキュメントを見て、上記の回答を読んだ後、必ずしもnode-gypをインストールしたり、windowsビルドツールをインストールしたりする必要がない場合があることに気付きました。これはそれが言っていることです、ここでwindowsにnode-gypをインストールすることについて。node-gypはnode-sassのインストールプロセスに関係していることを覚えておいてください。また、別のPythonバージョンを再インストールする必要はありません。

これは救世主です。ビルドツールを必要とするパッケージをインストールするときに「npm」が探すべきpythonパスを設定します。

C:\> npm config set python /Python36/python

私はそこにpython3.6.3をwindows-7にインストールしました。


インストール中node-sass@4.9.4に、私がに切り替えたときにwindows-10node@10.6.3およびを使用して同じ解決策が機能しましたyarn@1.19.1
MwamiTovi

Python36/pythonpython実行可能ファイルへのパスである必要があることに注意してください.exe
MwamiTovi

新規の場合は、Python実行可能ファイルがインストールされている場所に移動します。Windowsでは、プレスhold Shift, and Right-Click:そして、この入力npm config set python
MwamiTovi

2

ここで pythonインストーラをダウンロードしないのはなぜですか?パスのインストールをチェックすると、それはあなたのために仕事をします


2

私にとって、これらの手順は問題を修正しました:

1-このコマンドを管理者として実行:

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

2-次にnpm rebuild、最初のステップが完了した後に実行します(特に、問題の主な原因であるpython 2.7のインストールを完了します)。


1

正しいコマンドは次のとおりです。set path =%path%; C:\ Python34 [Pythonインストールの正しいパスに置き換えます]

私は同じ問題を抱えていたので、これをそのように解決しました。

他の人が指摘したように、これは揮発性の構成であり、現在のcmdセッションでのみ機能し、(明らかに)npm installを実行する前にパスを設定する必要があります。

これがお役に立てば幸いです。


1

gyp ERR!エラーgyp ERRを構成します!スタックエラー:Python実行可能ファイル「python」が見つかりません。PYTHON環境変数を設定できます。

再インストールする必要はありません。この例外はnode-gypスクリプトによってスローされ、再構築を試みます。私の場合のように、それは十分なセットアップ環境変数です:

SET PYTHON=C:\work\_env\Python27\python.exe

1

これをCygwinで使用しようとしている場合は、この回答の指示に従う必要があります。(CygwinがWindowsシンボリックリンクを処理する方法に問題があります。)


1

例:pg_configが実行できない/エラーnode-gyp

解決策:Windowsでは、PATH Env-> C:\ Program Files \ PostgreSQL \ 12 \ binを追加してみてください

私のために働く、今私はnpm i pg-promiseまたは他の依存関係を使用することができます。


以下のためにpg-promiseあなたはこれを必要としません。おそらく、巻き込まれた本で。最新バージョンを使用するだけで大​​丈夫です。余分なものは必要ありません;)
vitaly-t

0

私にとって、問題は、ノードの最新バージョンを使用しLTSており、安定したバージョンでほとんどのユーザーに推奨されているバージョンではないということでした。バージョン
を使用するとLTS問題が解決しました。
ここからダウンロードできます。

LTSバージョン

現在の最新バージョン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.