J'essaie donc de faire fonctionner le Node.js. Bien sûr, ce n'est pas aussi facile que annoncé :)
Il se trouve que j’ai deux versions de python sur mon ordinateur, mais Node.js ne semble fonctionner que avec l’ancienne version 2.7. En cas d'erreur, cela m'encourage également à définir le chemin d'accès dans la variable d'environnement PYTHON
avec cette erreur:
Error: Can't find Python executable "python2.7", you can set the PYTHON env variable.
Ok alors, j'ai configuré la variable comme souhaité:
C:\Users\Jakub>set PYTHON=C:\MYSELF\Programs\Python2.7\python.exe
C:\Users\Jakub>echo %PYTHON%
C:\MYSELF\Programs\Python2.7\python.exe
Vous pouvez voir que j'ai utilisé echo
pour vérifier si la variable était vraiment définie. Malheureusement, cette chose npm
ne peut pas le lire et l'erreur apparaît à nouveau. Voici le journal complet juste après avoir défini la variable %PYTHON%
:
C:\Users\Jakub>npm install minecraft-protocol
\
> [email protected] 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)
J'ai découvert que la solution la plus stable consiste à définir la valeur interne python
npm sur le chemin réel:
npm config set python C:\Programs\Python2.7\python2.7.exe
Cela ignore toutes les variables d’environnement et %PATH%
crap et ne démarre que le python où qu’il soit installé.
TL; DR Faites une copie ou un alias de votre python.exe avec le nom python2.7.exe
Mon python 2.7 a été installé en tant que
D:\app\Python27\python.exe
J'ai toujours eu cette erreur, peu importe comment j'ai défini (et vérifié) la variable PYTHON env:
gyp ERR! Erreur de pile: Impossible de trouver l'exécutable Python "python2.7", vous pouvez définir la variable env PYTHON . gyp ERR! pile à failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js: 103: 14)
La raison en était que, dans le fichier configure.js de node-gyp, l'exécutable python était résolu comme suit:
var python = gyp.opts.python || process.env.PYTHON || 'python'
Et il s'est avéré que gyp.opts.python avait la valeur 'python2.7', écrasant ainsi process.env.PYTHON.
J'ai résolu ce problème en créant un alias pour l'exécutable python.exe avec le nom node-gyp recherchait:
D:\app\Python27>mklink python2.7.exe python.exe
Vous avez besoin de droits d'administrateur pour cette opération.
Rouvrez votre terminal après avoir défini votre variable d'environnement dans le cas de Windows, mais dans le cas de Linux, il n'est pas nécessaire de redémarrer le terminal.