Also versuche ich, die Node.js zum Laufen zu bringen. Natürlich ist es nicht so einfach wie angekündigt :)
Ich habe zufällig zwei Python-Versionen auf meinem Computer, aber Node.js scheint nur mit der älteren Version 2.7 zu funktionieren. Bei einem Fehler ermutigt es mich auch, den Pfad in die Umgebungsvariable PYTHON
mit diesem Fehler zu setzen:
Error: Can't find Python executable "python2.7", you can set the PYTHON env variable.
Ok, ich habe die Variable wie gewünscht konfiguriert:
C:\Users\Jakub>set PYTHON=C:\MYSELF\Programs\Python2.7\python.exe
C:\Users\Jakub>echo %PYTHON%
C:\MYSELF\Programs\Python2.7\python.exe
Sie können sehen, dass ich echo
verwendet habe, um zu überprüfen, ob die Variable wirklich gesetzt wurde. Leider kann das npm
-Ding es nicht lesen und der Fehler erscheint erneut. Hier ist das vollständige Protokoll, nachdem ich die Variable %PYTHON%
eingestellt habe:
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)
Ich habe herausgefunden, dass die stabilste Lösung ist, python
npm internen Wert auf den tatsächlichen Pfad zu setzen:
npm config set python C:\Programs\Python2.7\python2.7.exe
Dies überspringt alle Umgebungsvariablen und %PATH%
crap und startet den Python einfach dort, wo er installiert ist.
TL; DR Erstellen Sie eine Kopie oder einen Alias Ihrer python.exe mit dem Namen python2.7.exe
Mein Python 2.7 wurde als installiert
D:\app\Python27\python.exe
Ich habe immer diesen Fehler erhalten, egal wie ich die PYTHON-Variable variiere:
gyp ERR! Stapelfehler: Python-Programmdatei "Python2.7" kann nicht gefunden werden. Sie können die PYTHON-Umgebungsvariable festlegen gyp ERR! stack at failNoPython (C:\Programme\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js: 103: 14)
Der Grund dafür war, dass die Python-Programmdatei in node-gyps configure.js wie folgt aufgelöst wurde:
var python = gyp.opts.python || process.env.PYTHON || 'python'
Und es stellte sich heraus, dass gyp.opts.python den Wert 'python2.7' hatte, wodurch prozess.env.PYTHON überschrieben wurde.
Ich habe dieses Problem gelöst, indem ein Alias für die ausführbare Datei python.exe mit dem Namen node-gyp erstellt wurde:
D:\app\Python27>mklink python2.7.exe python.exe
Für diesen Vorgang benötigen Sie Administratorrechte.
Öffnen Sie Ihr Terminal erneut, nachdem Sie Ihre Umgebungsvariable für Windows festgelegt haben. Linux muss jedoch nicht neu gestartet werden.
Das hat bei mir funktioniert:
npm config set python C:\Users\<username>\.windows-build-tools\python27\python.exe
Stellen Sie den Pfad auf python ausführbar entsprechend. Hoffe, diese Hilfe :-)