Node.js(npm)即使在设置了%PYTON%之后也拒绝找到python
Node.js (npm) refuses to find python even after %PYTHON% has been set
所以我正在努力让Node.js正常工作。当然,这并不像宣传的那么容易:(
我的电脑上碰巧有两个python版本,但Node.js似乎只适用于旧版本2.7。一旦出现错误,它还鼓励我将路径设置为PYTHON
环境变量,并出现以下错误:
Error: Can't find Python executable "python2.7", you can set the PYTHON env variable.
好的,然后,我根据需要配置了变量:
C:'Users'Jakub>set PYTHON=C:'MYSELF'Programs'Python2.7'python.exe
C:'Users'Jakub>echo %PYTHON%
C:'MYSELF'Programs'Python2.7'python.exe
您可以看到,我使用echo
来检查变量是否真的设置好了。不幸的是,npm
的东西无法读取,错误再次出现。以下是我设置%PYTHON%
变量后的完整日志:
C:'Users'Jakub>npm install minecraft-protocol
'
> ursa@0.8.5 install C:'Users'Jakub'node_modules'minecraft-protocol'node_modules'ursa
> node-gyp rebuild
|
C:'Users'Jakub'node_modules'minecraft-protocol'node_modules'ursa>if not defined npm_config_node_gyp (node "C:'Program Files (x86)'nodejs'node_modules'npm'bin'node-gyp-bin''..'..'no
de_modules'node-gyp'bin'node-gyp.js" rebuild ) else (rebuild)
gyp ERR! configure error
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 (x86)'nodejs'node_modules'npm'node_modules'node-gyp'lib'configure.js:103:14)
gyp ERR! stack at C:'Program Files (x86)'nodejs'node_modules'npm'node_modules'node-gyp'lib'configure.js:64:11
gyp ERR! stack at FSReqWrap.oncomplete (evalmachine.<anonymous>:95:15)
我发现最稳定的解决方案是将python
npm内部值设置为实际路径:
npm config set python C:'Programs'Python2.7'python2.7.exe
这跳过了所有环境变量和%PATH%
垃圾,只在安装python的任何地方启动它。
TL;DR为您的python.exe创建一个名为python2.7.exe的副本或别名
我的python 2.7安装为
D:''app''Python27''python.exe
无论我如何设置(并验证(PYTHON env变量:,我总是会出现这个错误
gyp ERR!堆栈错误:找不到Python可执行文件"python2.7",可以设置Python env变量。gyp ERR!失败时的堆栈NoPython(C:''Program Files''nodejs''node_modules''npm''node_modeles''node-gyp''lib''configure.js:103:14(
原因是在node-gip的config.js中,python可执行文件被解析为:
var python = gyp.opts.python || process.env.PYTHON || 'python'
事实证明,gyp.opts.pyson的值为"python2.7",因此覆盖了process.env.python.
我通过为python.exe可执行文件创建一个别名来解决这个问题,该别名为node gyp正在查找的名称:
D:'app'Python27>mklink python2.7.exe python.exe
您需要此操作的管理员权限。
如果是windows,则在设置环境变量后重新打开终端,但如果是linux,则无需重新启动终端。
这对我有效:
npm config set python C:'Users'<username>'.windows-build-tools'python27'python.exe
相应地设置python可执行文件的路径。希望得到帮助:-(
在Windows上转到目录C:'Users'<<your username>>'.windows-build-tools'python27
,并将python.exe
复制并粘贴为同一目录中的python.2.7.exe
。
我尝试了所有的方法,但都不起作用,然后我在C:''Python27''python.exe 的这个位置使用这个链接安装了python
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 在chrome.tabs.onCreated之后加载HTML页面
- 在Jquery detachment()和appendTo()之后定位元素
- AngularJS:ng之后,重复$scope值未按预期更新
- 为什么元素的宽度在页面加载之后和那一刻之后不同
- 没有在Angular应用程序中定义firebase(在firebase迁移之后)
- Javascript复选框函数:;缺少:在属性id之后"
- 在刚刚调用的append函数之后,jquery.height()不会返回实际值
- 正在链接添加了以下内容::在之后
- JQuery hide()在show()之后不起作用,反之亦然
- 未执行Ajax循环的Javascript之后的代码
- 如何在`window.open`之后执行回调
- 如何在一个元素动画之后延迟
- 在XMLHttpRequest之后重新初始化jQuery
- <text区域>在我的html中包含event.keycode==13之后,wrap就不起作用了
- 在jAlert之后设置焦点
- 在Javascript中的ajax响应之后未调用Dropdown事件
- web浏览器中的离线应用程序存储数据并在之后上传
- 错误“;未处理'错误'事件“;在运行yo发电机之后
- Node.js(npm)即使在设置了%PYTON%之后也拒绝找到python