所以我试着让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)
6条答案
按热度按时间ozxc1zmp1#
我发现最稳定的解决方案是将
python
npm内部值设置为实际路径:这跳过了所有的环境变量和
%PATH%
的废话,并只是启动python,无论它安装在哪里。a64a0gku2#
TL;DR使用名称python2.7.exe创建python.exe的副本或别名
我的python 2.7安装为
无论我如何设置(和验证)PYTHON env变量,我总是得到这个错误:
原因是在node-gyp的configure.js中python可执行文件的解析如下:
第一个月
结果是gyp.opts.python的值为“python2.7”,因此覆盖了process. env. PYTHON。
我通过为python.exe可执行文件创建一个别名来解决这个问题,该别名的名称为node-gyp正在寻找:
D:\app\Python27>mklink python2.7.exe python.exe
您需要管理员权限才能执行此操作。
cgfeq70w3#
在windows环境下设置环境变量后重新打开终端,在linux环境下则无需重新启动终端。
tct7dpnv4#
这对我很有效:
相应地设置python可执行文件的路径。希望这对你有帮助:-)
o2gm4chl5#
在Windows上后藤目录
C:\Users\<<your username>>\.windows-build-tools\python27
,将python.exe
复制并粘贴为同一目录中的python.2.7.exe
。hfwmuf9z6#
我尝试了所有方法,但没有一个对我有效,然后我使用这个Link在以下位置安装了python:\Python27\python.exe