Wie verwende ich eine andere Version von Python während der NPM-Installation?
Lesezeit: 5 Minuten
Nasser Torabzade
Ich habe Terminalzugriff auf einen VPS, auf dem Centos 5.9 ausgeführt wird, und standardmäßig ist Python 2.4.3 installiert. Ich habe auch Python 2.7.3 über diese Befehle installiert: (Ich habe make altinstall Anstatt von make install)
wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
tar -xf Python-2.7.3.tgz
cd Python-2.7.3
./configure
make
make altinstall
dann habe ich node.js aus der Quelle über diese Befehle installiert:
python2.7 ./configure
make
make install
Das Problem ist, wenn ich benutze npm install und versuche, ein node.js-Paket zu installieren, das Python > 2.4.3 erfordert. Ich erhalte diesen Fehler:
gyp ERR! configure error
gyp ERR! stack Error: Python executable "python" is v2.4.3, which is not supported by gyp.
gyp ERR! stack You can pass the --python switch to point to Python >= v2.5.0 & < 3.0.0.
gyp ERR! stack at failPythonVersion (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:125:14)
gyp ERR! stack at /usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:114:9
wie soll ich “übergeben Sie den Schalter –python, um auf Python >= v2.5.0 zu verweisen”?
Ich würde einen Hack vorschlagen. Wie wäre es mit Aliasing dieser Python-Version in Ihrer Shell und dann, nachdem Sie die Shell geschlossen haben, sollte das System zum vorherigen Zustand zurückkehren
– Rafee
8. Dezember 2013 um 13:58 Uhr
@rafee es ist großartig, kannst du erklären, wie ich das machen kann? Ich bin ein bisschen neu in Centos!
– Nasser Torabzade
8. Dezember 2013 um 14:02 Uhr
Ich habe CentOS fast nie verwendet. Es sollte wie jede andere Linux-Distribution sein. Ich erzähle von einem temporären Verfahren, da das Festlegen eines Alias Ihr System beschädigen kann. Das sollte man also nicht machen.
– Rafee
8. Dezember 2013 um 14:04 Uhr
@rafee danke, ich werde deine Lösung überprüfen.
– Nasser Torabzade
8. Dezember 2013 um 14:09 Uhr
alias python=/path/to/python sollte gut genug sein. Seien Sie jedoch vorsichtig, wenn Sie die Änderung vorübergehend vornehmen, da eine dauerhafte Änderung Ihr System beschädigen kann
– Rafee
8. Dezember 2013 um 14:09 Uhr
Sie können verwenden --python Option zu npm wie folgt:
npm install --python=python2.7
oder stellen Sie es so ein, dass es immer verwendet wird:
npm config set python python2.7
Npm wird diese Option wiederum bei Bedarf an node-gyp weitergeben.
(Hinweis: Ich bin derjenige, der ein Problem auf Github eröffnet hat, um dies in die Dokumentation aufzunehmen, da es so viele Fragen dazu gab 😉 )
Dies sollte die akzeptierte Antwort sein. npm config set python python2.7 ist der endgültig Lösung
– Alessandro Pezzato
28. Juli 2014 um 22:30 Uhr
Sicher Wenn python2 auf Ihrem $PATH ist, verwenden Sie das auf jeden Fall 🙂
– Ack
4. Oktober 2014 um 23:54 Uhr
Zum pyenv mit Python 3 habe ich verwendet npm install --python=/usr/bin/python
– Andrej
24. Juni 2015 um 11:08 Uhr
da ich python3 als global habe, muss ich auch python27 einrichten mit: > this npm config set python C:\Python27\python.exe
– Francois
23. Januar 2016 um 23:22 Uhr
Weder die --python=python3 Flagge noch npm config set python python3 hat bei mir funktioniert. Mein NPM besteht darauf, Python 2 für die Installation zu verwenden. Vielleicht ist es bei globalen NPM-Paketen anders? Hatte jemand Glück mit einem anderen Ansatz?
– mercer721
12. Oktober 2020 um 19:35 Uhr
Sandtränen Kirisame
Stellen Sie python auf python2.7 ein, bevor Sie npm install ausführen
Linux:
export PYTHON=python2.7
Fenster:
set PYTHON=python2.7
export wird verwendet, um eine Umgebungsvariable festzulegen, und die Variable funktioniert auf Ihrer Shell und ihrem untergeordneten Prozess.
– Sandtränen Kirisame
8. Dezember 2013 um 14:19 Uhr
meine oder diese? denn wenn meins funktionierte, würde ich das als Antwort posten & das sollte als Antwort markiert werden
– Rafee
8. Dezember 2013 um 16:40 Uhr
@rafee dieser hat funktioniert, ich habe deinen Vorschlag für zukünftige Bedürfnisse gespeichert, danke.
– Nasser Torabzade
9. Dezember 2013 um 13:48 Uhr
verwenden set PYTHON=python2.7 unter Windows
– zacharyliu
28. Februar 2014 um 11:10 Uhr
Dies ist eine schlechte Idee, wenn eine bestimmte Python3-Umgebung geladen werden muss. python2.7 wird in diesem Fall nur für npm verwendet, stellen Sie es also nur für npm und nicht für Ihre gesamte Shell-Umgebung ein, ohne zu wissen, was Sie tun.
– ohcibi
3. August 2015 um 9:09 Uhr
Für Windows-Benutzer sollte so etwas funktionieren:
Dies kann mit der akzeptierten Antwort kombiniert werden mit: npm config set python C:\Python27\python.exe – Ich habe das gerade gemacht und es hat gut funktioniert, was bedeutet, dass Sie es nicht jedes Mal tun müssen, wenn Sie etwas installieren möchten.
– Nathan Ridley
30. November 2015 um 23:58 Uhr
Wenn Sie Git Bash verwenden, müssen Sie die Backslashes maskieren: npm install --python=C:\\Python27\\python.exe.
– Leponzo
29. Juli 2021 um 13:32 Uhr
Ich musste den Pfad in doppelte Anführungszeichen setzen, npm install –python=”C:\Python27\python.exe” für git bash
– Xenalin
26. November 2021 um 15:43 Uhr
Dieser funktioniert besser wenn Sie die Python nicht auf dem Pfad haben oder wollen Verzeichnis angeben :
//for Windows
npm config set python C:\Python27\python.exe
//for Linux
npm config set python /usr/bin/python27
Ok, du hast also schon eine Lösung gefunden. Ich wollte nur mitteilen, was mir so oft geholfen hat;
ich habe erschaffen setpy2 Alias, der mir hilft, Python zu wechseln.
Ausführen setpy2 bevor du rennst npm install. Der Schalter bleibt in Kraft, bis Sie das Terminal danach verlassen python wird auf Systemstandard zurückgesetzt.
Sie können diese Technik auch für alle anderen Befehle/Werkzeuge verwenden.
@NasserTorabzade hat Aliasing den Job oder die Lösung als Antwort ausgeführt?
– Rafee
9. Dezember 2013 um 6:52 Uhr
@rafee Ich habe es gerade für zukünftige Zwecke gespeichert, bin nicht wirklich gekommen, um es zu testen! Verzeihung!
– Nasser Torabzade
9. Dezember 2013 um 7:07 Uhr
@NasserTorabzade Ich habe tatsächlich gefragt, ob PYTHON=python2.7 gut genug war, denn das ist eine tot einfache Lösung als das, was ich vorgeschlagen habe.
– Rafee
9. Dezember 2013 um 7:45 Uhr
@rafee ja, PYTHON=python2.7 hat wunderbar funktioniert! 🙂
– Nasser Torabzade
9. Dezember 2013 um 13:49 Uhr
MPV
Für eine schnelle einmalige Verwendung funktioniert dies, npm install –python=”c:\python27″
@NasserTorabzade hat Aliasing den Job oder die Lösung als Antwort ausgeführt?
– Rafee
9. Dezember 2013 um 6:52 Uhr
@rafee Ich habe es gerade für zukünftige Zwecke gespeichert, bin nicht wirklich gekommen, um es zu testen! Verzeihung!
– Nasser Torabzade
9. Dezember 2013 um 7:07 Uhr
@NasserTorabzade Ich habe tatsächlich gefragt, ob PYTHON=python2.7 gut genug war, denn das ist eine tot einfache Lösung als das, was ich vorgeschlagen habe.
– Rafee
9. Dezember 2013 um 7:45 Uhr
@rafee ja, PYTHON=python2.7 hat wunderbar funktioniert! 🙂
– Nasser Torabzade
9. Dezember 2013 um 13:49 Uhr
10636100cookie-checkWie verwende ich eine andere Version von Python während der NPM-Installation?yes
Ich würde einen Hack vorschlagen. Wie wäre es mit Aliasing dieser Python-Version in Ihrer Shell und dann, nachdem Sie die Shell geschlossen haben, sollte das System zum vorherigen Zustand zurückkehren
– Rafee
8. Dezember 2013 um 13:58 Uhr
@rafee es ist großartig, kannst du erklären, wie ich das machen kann? Ich bin ein bisschen neu in Centos!
– Nasser Torabzade
8. Dezember 2013 um 14:02 Uhr
Ich habe CentOS fast nie verwendet. Es sollte wie jede andere Linux-Distribution sein. Ich erzähle von einem temporären Verfahren, da das Festlegen eines Alias Ihr System beschädigen kann. Das sollte man also nicht machen.
– Rafee
8. Dezember 2013 um 14:04 Uhr
@rafee danke, ich werde deine Lösung überprüfen.
– Nasser Torabzade
8. Dezember 2013 um 14:09 Uhr
alias python=/path/to/python sollte gut genug sein. Seien Sie jedoch vorsichtig, wenn Sie die Änderung vorübergehend vornehmen, da eine dauerhafte Änderung Ihr System beschädigen kann
– Rafee
8. Dezember 2013 um 14:09 Uhr