variable - python en windows 10
Ejecutar Python en Windows para las dependencias de Node.js (14)
gyp ERR! configure error gyp ERR! error de pila: no se puede encontrar el ejecutable de Python "python", puede establecer la variable de env PYT HON.
No es necesario reinstalar, esta excepción arrojar por script node-gyp, luego intentar reconstruir. Es suficiente variable de entorno de configuración como en mi caso lo hice:
SET PYTHON=C:/work/_env/Python27/python.exe
Estoy entrando en una base de código de Node.js que requiere que descargue unas pocas dependencias a través de NPM, concretamente jQuery.
Al intentar ejecutar npm install jquery
, sigo recibiendo este error:
Your environment has been set up for using Node.js 0.8.21 (x64) and NPM
C:/Users/Matt Cashatt>npm install jquery
npm http GET https://registry.npmjs.org/jquery
npm http 304 https://registry.npmjs.org/jquery
npm http GET https://registry.npmjs.org/jsdom
npm http GET https://registry.npmjs.org/xmlhttprequest
npm http GET https://registry.npmjs.org/htmlparser/1.7.6
npm http GET https://registry.npmjs.org/location/0.0.1
npm http GET https://registry.npmjs.org/navigator
npm http GET https://registry.npmjs.org/contextify
npm http 304 https://registry.npmjs.org/htmlparser/1.7.6
npm http 304 https://registry.npmjs.org/xmlhttprequest
npm http 304 https://registry.npmjs.org/location/0.0.1
npm http 304 https://registry.npmjs.org/navigator
npm http 304 https://registry.npmjs.org/jsdom
npm http 304 https://registry.npmjs.org/contextify
npm http GET https://registry.npmjs.org/bindings
npm http GET https://registry.npmjs.org/cssom
npm http GET https://registry.npmjs.org/cssstyle
npm http GET https://registry.npmjs.org/request
npm http 304 https://registry.npmjs.org/bindings
> [email protected] install C:/Users/Matt Cashatt/node_modules/jquery/node_module
s/contextify
> node-gyp rebuild
C:/Users/Matt Cashatt/node_modules/jquery/node_modules/contextify>node "C:/Progr
am Files/nodejs/node_modules/npm/bin/node-gyp-bin//../../node_modules/node-gyp/b
in/node-gyp.js" rebuild
npm http 304 https://registry.npmjs.org/cssstyle
npm http 304 https://registry.npmjs.org/cssom
npm http 304 https://registry.npmjs.org/request
gyp ERR! configure error
gyp ERR! stack Error: Can''t find Python executable "python", you can set the PYT
HON env variable.
gyp ERR! stack at failNoPython (C:/Program Files/nodejs/node_modules/npm/nod
e_modules/node-gyp/lib/configure.js:113:14)
gyp ERR! stack at C:/Program Files/nodejs/node_modules/npm/node_modules/node
-gyp/lib/configure.js:82:11
gyp ERR! stack at Object.oncomplete (fs.js:297:15)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "node" "C://Program Files//nodejs//node_modules//npm//node_modu
les//node-gyp//bin//node-gyp.js" "rebuild"
gyp ERR! cwd C:/Users/Matt Cashatt/node_modules/jquery/node_modules/contextify
gyp ERR! node -v v0.8.21
gyp ERR! node-gyp -v v0.8.4
gyp ERR! not ok
npm ERR! error rolling back Error: ENOTEMPTY, rmdir ''C:/Users/Matt Cashatt/node_
modules/jquery/node_modules/jsdom/node_modules/request/tests''
npm ERR! error rolling back [email protected] { [Error: ENOTEMPTY, rmdir ''C:/Users/M
att Cashatt/node_modules/jquery/node_modules/jsdom/node_modules/request/tests'']
npm ERR! error rolling back errno: 53,
npm ERR! error rolling back code: ''ENOTEMPTY'',
npm ERR! error rolling back path: ''C://Users//Matt Cashatt//node_modules//jque
ry//node_modules//jsdom//node_modules//request//tests'' }
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! `cmd "/c" "node-gyp rebuild"` failed with 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the contextify package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-gyp rebuild
npm ERR! You can get their info via:
npm ERR! npm owner ls contextify
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C://Program Files//nodejs////node.exe" "C://Program Files//nod
ejs//node_modules//npm//bin//npm-cli.js" "install" "jquery"
npm ERR! cwd C:/Users/Matt Cashatt
npm ERR! node -v v0.8.21
npm ERR! npm -v 1.2.11
npm ERR! code ELIFECYCLE
npm ERR! Error: ENOENT, lstat ''C:/Users/Matt Cashatt/node_modules/jquery/node_mo
dules/jsdom/node_modules/request/tests/test-pipes.js''
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C://Program Files//nodejs////node.exe" "C://Program Files//nod
ejs//node_modules//npm//bin//npm-cli.js" "install" "jquery"
npm ERR! cwd C:/Users/Matt Cashatt
npm ERR! node -v v0.8.21
npm ERR! npm -v 1.2.11
npm ERR! path C:/Users/Matt Cashatt/node_modules/jquery/node_modules/jsdom/node_
modules/request/tests/test-pipes.js
npm ERR! fstream_path C:/Users/Matt Cashatt/node_modules/jquery/node_modules/jsd
om/node_modules/request/tests/test-pipes.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack C:/Program Files/nodejs/node_modules/npm/node_modules/fst
ream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:297:15)
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! C:/Users/Matt Cashatt/npm-debug.log
npm ERR! not ok code 0
C:/Users/Matt Cashatt>
Parece que la falla se debe a una instalación de Python que falta. Bien, he instalado Python, configuré la variable y reinicié el error.
¿Alguna pista sobre lo que me estoy perdiendo?
¿Por qué no descargar el instalador de Python here ? Hace el trabajo por usted cuando comprueba la instalación de la ruta
Aquí está el comando correcto: establecer path =% path%; C: / Python34 [Reemplazar con la ruta correcta de la instalación de python]
Tuve el mismo problema y simplemente resolví esto de esa manera.
Como señalaron otras personas, esta es una configuración volátil, solo funciona para la sesión actual de cmd y (obviamente) debes establecer tu ruta antes de ejecutar la instalación de npm.
Espero que esto ayude.
Aquí hay una guía que resolvió muchos de estos problemas para mí.
http://www.steveworkman.com/node-js/2012/installing-jsdom-on-windows/
Recuerdo en particular la versión de Python como importante. Asegúrese de instalar 2.7.3 en lugar de 3
¡Buena suerte!
Lo siguiente funcionó para mí desde la línea de comando como admin:
Instalación de Windows-build-tools (esto puede tomar 15-20 minutos):
npm --add-python-to-path=''true'' --debug install --global windows-build-tools
Agregar / actualizar la variable de entorno:
setx PYTHON "%USERPROFILE%/.windows-build-tools/python27/python.exe"
Instalando node-gyp:
npm install --global node-gyp
Cambiar el nombre del archivo exe de Python a Python2.7.
C:/Users/username/.windows-build-tools/python27/Python2.7
npm install module_name --save
No puedo evitar mencionar esto. Si está usando Python3 y está fallando con node-gyp, entonces me entristece decirle que node-gyp actualmente no es compatible con python3.
Aquí hay un enlace para ti: https://github.com/nodejs/node-gyp/issues/1268 https://github.com/nodejs/node-gyp/issues/193
Si intentas usar esto en Cygwin, entonces debes seguir las instrucciones en this respuesta. (Es un problema cómo trata Cygwin los enlaces simbólicos de Windows).
Si no tiene Python instalado junto con todas las dependencias de node-gyp, simplemente ejecute:
npm install --global --production windows-build-tools
y luego para instalar el paquete:
npm install --global node-gyp
una vez instalado, tendrá todas las dependencias nodo-gyp descargadas, pero aún necesita la variable de entorno. Validar Python efectivamente se encuentra en la carpeta correcta:
C:/Users/ben/.windows-build-tools/python27/python.exe
Nota: usa python 2.7 no 3.x ya que no es compatible
Si no se queja, siga adelante y cree su variable de entorno (usuario):
setx PYTHON "%USERPROFILE%/.windows-build-tools/python27/python.exe"
reinicie cmd y verifique que la variable exista a través del set PYTHON
que debe devolver la variable
Por último, vuelva a aplicar npm install <module>
Tu problema es que no estableciste la variable de entorno.
El error dice claramente esto:
gyp ERR! stack Error: Can''t find Python executable "python", you can set the PYTHON env variable.
Y en tu comentario, dices que hiciste esto:
set PYTHONPATH=%PYTHONPATH%;C:/My_python_lib
Eso es bueno, pero eso no establece la variable PYTHON
, establece la variable PYTHONPATH
.
Mientras tanto, solo usar el comando set
solo afecta la sesión actual de cmd
. Si reinicias después de eso, como dices que hiciste, terminas con una nueva sesión de cmd
que no tiene esa variable establecida en ella.
Hay algunas maneras de establecer las variables de entorno de forma permanente: la más fácil es en el Panel de control del sistema en XP, que por supuesto es diferente en Vista, diferente en 7 y diferente en 8, pero puede buscarlo en Google.
Alternativamente, simplemente haga el set
justo antes del comando npm
, sin reiniciar en el medio.
Puede probar si ha hecho las cosas bien haciendo exactamente lo mismo que intenta el script de configuración: Antes de ejecutar npm
, intente ejecutar %PYTHON%
. Si lo ha hecho bien, obtendrá un intérprete de Python (que puede cerrar de inmediato). Si obtiene un error, no lo ha hecho bien.
Hay dos problemas con esto:
set PYTHON=%PYTHON%;D:/Python
Primero, configura PYTHON
a ;D:/Python
. Ese punto y coma adicional está bien para una lista de rutas separadas por punto y coma, como PATH
o PYTHONPATH
, pero no para un solo valor como PYTHON
. Asimismo, agregar un nuevo valor al valor existente es lo que desea cuando desea agregar otra ruta a una lista de rutas, pero no para un solo valor. Entonces, solo quieres set PYTHON=D:/Python
.
En segundo lugar, D:/Python
no es la ruta a su intérprete de Python. Es algo así como D:/Python/Python.exe
, o D:/Python/bin/Python.exe
. Encuentre la ruta correcta, asegúrese de que funcione por sí misma (por ejemplo, escriba D:/Python/bin/Python.exe
y asegúrese de obtener un intérprete de Python), luego configure la variable y D:/Python/bin/Python.exe
.
Asi que:
set PYTHON=D:/Python/bin/Python.exe
O bien, si desea hacerlo permanente, haga el equivalente en el Panel de control.
Tuve el mismo problema y ninguna de estas respuestas me ayudó. En mi caso, la variable PYTHON se configuró correctamente. Sin embargo, Python se instaló demasiado profundo, es decir, tiene una ruta demasiado larga. Entonces, hice lo siguiente:
- reinstalado python a c: / python
- establecer la variable ambiental PYTHON a C: / python / python.exe
¡Y eso es!
Uno y / o varios de ellos deberían ayudar:
Agregue
C:/Python27/
a su variablePATH
(considerando que tiene instalado Python en este directorio)
Cómo establecer laPATH
entornoPATH
: http://www.computerhope.com/issues/ch000549.htm
Reinicie su consola y / o Windows después de configurar la variable.En la misma sección anterior ("Variables de entorno"), agregue una nueva variable con el nombre
PYTHON
y valorC:/Python27/python.exe
Reinicie su consola y / o Windows después de configurar la variable.Abra la línea de comandos de Windows (
cmd
) en modo Admin .
Cambie el directorio a la ruta de instalación de Python:cd C:/Python27
Hacer symlink necesario para algunas instalaciones:mklink python2.7.exe python.exe
Tenga en cuenta que debe tener Python 2.x, NO 3.x , para ejecutar instalaciones basadas en node-gyp
.
El texto a continuación dice acerca de Unix, pero la versión de Windows también requiere Python 2.x:
You can install with npm:
$ npm install -g node-gyp
You will also need to install:
On Unix:
python (v2.7 recommended, v3.x.x is not supported)
make
A proper C/C++ compiler toolchain, like GCC
Este artículo también puede ayudar: https://github.com/nodejs/node-gyp#installation
hay alguna solución para resolver este problema: 1) ejecute el símbolo del sistema como "administrador".
Si la primera solución no resuelve tu problema, prueba este:
2) abra un símbolo del sistema como administrador pegue la siguiente línea de código y presione enter:
npm install --global --production windows-build-tools
TL; DR Haga una copia o alias de su python.exe con el nombre python2.7.exe
Mi Python 2.7 se instaló como
D:/app/Python27/python.exe
Siempre obtuve este error sin importar cómo configuré (y verifiqué) la variable env de PYTHON:
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)
La razón de esto fue que en configure.js de node-gyp, el ejecutable de Python se resolvió como:
var python = gyp.opts.python || process.env.PYTHON || ''python''
Y resultó que gyp.opts.python tenía el valor ''python2.7'', anulando así el proceso.env.PYTHON.
Resolví esto creando un alias para el ejecutable python.exe con el nombre node-gyp que estaba buscando:
D:/app/Python27>mklink python2.7.exe python.exe
Necesita derechos de administrador para esta operación.