Node.js(npm)拒绝查找python,即使已设置%PYTHON%

e7arh2l6  于 2022-12-27  发布在  Node.js
关注(0)|答案(6)|浏览(156)

所以我试着让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)
ozxc1zmp

ozxc1zmp1#

我发现最稳定的解决方案是将python npm内部值设置为实际路径:

npm config set python C:\Programs\Python2.7\python2.7.exe

这跳过了所有的环境变量和%PATH%的废话,并只是启动python,无论它安装在哪里。

a64a0gku

a64a0gku2#

TL;DR使用名称python2.7.exe创建python.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的configure.js中python可执行文件的解析如下:
第一个月
结果是gyp.opts.python的值为“python2.7”,因此覆盖了process. env. PYTHON。
我通过为python.exe可执行文件创建一个别名来解决这个问题,该别名的名称为node-gyp正在寻找:
D:\app\Python27>mklink python2.7.exe python.exe
您需要管理员权限才能执行此操作。

cgfeq70w

cgfeq70w3#

在windows环境下设置环境变量后重新打开终端,在linux环境下则无需重新启动终端。

tct7dpnv

tct7dpnv4#

这对我很有效:

npm config set python C:\Users\<username>\.windows-build-tools\python27\python.exe

相应地设置python可执行文件的路径。希望这对你有帮助:-)

o2gm4chl

o2gm4chl5#

在Windows上后藤目录C:\Users\<<your username>>\.windows-build-tools\python27,将python.exe复制并粘贴为同一目录中的python.2.7.exe

hfwmuf9z

hfwmuf9z6#

我尝试了所有方法,但没有一个对我有效,然后我使用这个Link在以下位置安装了python:\Python27\python.exe

相关问题