在Windows上运行Python以获得Node.js依赖

我正在进入一个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,设置了变量,然后重新启动,仍然出现错误。

你知道我错过了什么吗?

469274 次浏览

你的问题是你没有设置了环境变量。

错误明确地说:

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中也是不同的,但是你可以谷歌。

或者,只在npm命令之前执行set,中间不重新启动。


你可以通过做配置脚本试图做的完全相同的事情来测试你是否做对了:在运行npm之前,尝试运行%PYTHON%。如果你做对了,你会得到一个Python解释器(你可以立即退出)。如果你得到一个错误,你没有做对。


这里有两个问题:

set PYTHON=%PYTHON%;D:\Python

首先,你将PYTHON设置为;D:\Python。额外的分号适用于以分号分隔的路径列表,如PATHPYTHONPATH,但不适用于像PYTHON这样的单个值。同样,当您想向路径列表中添加另一个路径时,可以向现有值中添加一个新值,但不是针对单个值。所以,你只需要set PYTHON=D:\Python

其次,D:\Python不是Python解释器的路径。它类似于D:\Python\Python.exeD:\Python\bin\Python.exe。找到正确的路径,确保它自己工作(例如,键入D:\Python\bin\Python.exe并确保你得到一个Python解释器),然后设置变量并使用它。


所以:

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

或者,如果你想让它永久,在控制面板中做相同的操作。

这里有一个指南,为我解决了很多这些问题。

http://www.steveworkman.com/node-js/2012/installing-jsdom-on-windows/

我记得python版本特别重要。确保你安装了2.7.3而不是3。

我也有同样的问题,这些答案都没有帮助。 在我的例子中,PYTHON变量设置正确。然而,python安装得太深,即路径太长。因此,我做了以下操作:

  1. 重新安装python到c:\python
  2. 设置环境变量PYTHON为C:\ PYTHON \ PYTHON .exe

就是这样!

为你的python.exe创建一个名为python2.7.exe的副本或别名

我的python 2.7被安装为

D: \ app \ Python27 \ python.exe

无论我如何设置(并验证)PYTHON env变量,我总是得到这个错误:

gyp ERR! stack Error: Can't find Python executable "python2.7", you can set the PYTHON env variable.
gyp ERR! stack     at failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:103:14)

原因是在node-gyp的config .js中,python可执行文件是这样解析的:

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

结果发现,gypp .opt .python有值'python2.7',因此重写process.env.PYTHON。

我通过为node-gyp正在寻找的python.exe可执行文件创建一个别名来解决这个问题:

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

该操作需要管理员权限。

下面是正确的命令:set path=%path%;C:\Python34[替换为正确的python安装路径]

我遇到过同样的问题,我就这样解决了。

正如其他人指出的那样,这是一个易变的配置,它只对当前的cmd会话有效,并且(显然)你必须在运行npm install之前设置路径。

我希望这能有所帮助。

< p >骗取犯错!配置错误 骗子犯错!堆栈错误:无法找到Python可执行文件“Python”,您可以设置PYT HON env变量。

没有必要重新安装,此异常由node-gyp脚本抛出,然后尝试重新构建。这是足够的设置环境变量,就像在我的情况下:

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

如果你试图在Cygwin上使用这个,那么你需要遵循 answer中的说明。(Cygwin如何处理Windows符号链接是个问题。)

其中一个和/或多个应该有助于:

  1. C:\Python27\添加到你的PATH变量中(考虑到你在这个目录中安装了Python)
    如何设置PATH env变量:http://www.computerhope.com/issues/ch000549.htm

  2. .设置变量后重新启动控制台和/或Windows 在与上面相同的部分(“环境变量”)中,添加名为PYTHON且值为C:\Python27\python.exe
    的新变量

    .设置变量后重新启动控制台和/或Windows
  3. 打开Windows命令行(cmd) 管理模式.
    . 将目录更改为Python安装路径:cd C:\Python27
    制作一些安装所需的符号链接:mklink python2.7.exe python.exe

请注意你应该有Python 2。x,不是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

如果你没有安装python以及所有node-gyp依赖项,只需使用管理员权限打开Powershell或Git Bash并执行:

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

然后安装包:

npm install --global node-gyp

安装完成后,您将下载所有node-gyp依赖项,但仍然需要环境变量。在正确的文件夹中确实找到了Validate Python:

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

* 注意-它使用python 2.7而不是3。X,因为不支持*

如果它没有呻吟,继续创建你的(用户)环境变量:

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

重新启动cmd,并通过set PYTHON验证变量是否存在,应该返回变量(如果使用Powershell则返回$env:PYTHON)

最后重新应用npm install <module>

为什么不下载python安装程序在这里 ?当你检查路径安装时,它会为你工作

作为管理员,下面的命令行对我有用:

安装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

有一些解决方案可以解决这个问题: 1)以“administrator”身份运行命令提示符

如果第一个方法不能解决你的问题,试试这个方法:

2)以管理员身份打开命令提示符,粘贴以下代码行并按enter:

npm install --global --production windows-build-tools
我忍不住要提一下。 如果你正在使用Python3并且node-gyp失败,那么我很遗憾地告诉你node-gyp目前不支持Python3

这里有一个链接给你: https://github.com/nodejs/node-gyp/issues/1268 https://github.com/nodejs/node-gyp/issues/193 < / p >

正确的方法是 1)从在这里下载并安装python 2.7.14。 2)从在这里开始设置python的环境变量

完成了!

注:请设置相应的环境变量。我在这里回答窗户。

https://www.npmjs.com/package/node-gyp

我是这样做的:

npm install -g node-gyp

然后:

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

对我来说,在安装了下面的注释的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"

有工作。

对我来说,这些步骤解决了问题:

1-以管理员身份运行命令:

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

2-然后运行npm rebuild后,第一步完成(特别是完成python 2.7安装,这是问题的主要原因)

< p >对我来说, 问题是我使用的是node的最新版本,而不是LTS版本,这是稳定的版本,推荐给大多数用户。< br > 使用LTS版本解决了这个问题 你可以从这里下载:

LTS Version

当前最新版本

我遇到了同样的挑战,而试图安装node-sass@4.9.4

在查看了当前的官方文档并阅读了上面的答案后,我注意到您可能不一定要安装node-gyp或安装windows-build工具。这就是它所说的,这里关于在Windows上安装node-gyp。记住node-gyp涉及到node-sass的安装过程。你真的不需要重新安装另一个python版本。

这是救星,配置“npm”在安装任何需要构建工具的包时应该寻找的python路径。

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

我在windows-7上安装了python3.6.3。

这是让NPM为你做所有事情的最简单的方法

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

例如:pg_config not executable / error node-gyp

解决方案:在windows上尝试添加PATH Env -> C:\Program Files\PostgreSQL\12\bin

为我工作,现在我可以使用npm i pg-promise为例或其他依赖。

设置路径如下,它将工作

> set PYTHON=D:\\ranjith\\installed\\python-3.6.4\\python.exe


> npm config set python D:\\ranjith\\installed\\python-3.6.4\\python.exe

然后建立你的项目(对我来说)

> yarn build

当我试图执行“npm install”时,也遇到了同样的错误。下载Akveo ngx-admin模板后。

这是一种奇怪的情况,因为我只是在另一台笔记本电脑上启动了相同的模板。我意识到我安装了antoher versión的npm。

enter image description here

如您所见,我的节点版本是"14.17.0"第一步我的NPM版本是“7.13.0”。然后我意识到我的另一台笔记本电脑上的npm版本是“6.14.11”,所以我决定通过执行“npm install -g npm@6.14.11”来降级npm版本。

然后“npm install"工作得很好。

< p >注意: 不需要安装windows-build-tools或任何python版本

我尝试了上面所有的步骤,没有一个对我有效。我试图通过yarn在windows 10系统上安装argon2 npm包。

这就是最终成功的方法

  1. 我运行 npm --add-python-to-path='true' --debug install --global windows-build-tools在命令终端中以管理员身份安装python 上面的命令进入了一个无限循环,你可以使用Ctrl + c终止
  2. 我通过运行这个来设置环境变量 李setx PYTHON "%USERPROFILE%\.windows-build-tools\python27\python.exe" < / >
  3. 通过执行
    命令全局安装node-gyp 李npm install --global node-gyp < / > 我下载了VS 2019社区版安装程序,在安装时,我添加了使用c++的桌面开发,如图所示 李enter image description here < / >
  4. 我又运行了yarn命令。例如yarn add argon2

我希望这些步骤能帮到你。我花了几个小时才找到答案

我的问题的答案很简单。

我在安装Python时打开了一个Windows命令窗口。

安装Python后,我试图从该窗口启动Python。

解决办法对我来说很简单。

当我关闭命令窗口并打开一个新的命令窗口时,问题就消失了。

我必须打开一个新的命令窗口,以便path环境变量将包含Python的路径。

对我有用的是:

  • 执行在这里并安装所需的python版本
  • 使用cmd npm config set python C:\Users\jorge\AppData\Local\Programs\Python\Python310\python.exe执行以下命令

将路径更改为您的目录

下载最新版本从https://www.python.org/downloads/ 安装时检查Add Python 3.10 to PATH选项。在重新启动后,一切都在完美地工作