Me estoy metiendo en una base de código Node.js que requiere que descargue algunas dependencias a través de NPM, es decir, 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
> contextify@0.1.4 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 falta de instalación de Python. Bueno, instalé Python, configuré la variable, reinicié y aún el error.
¿Alguna pista de lo que me estoy perdiendo?
PYTHON=C:\Python27\Python.exe
en tu ventana de cmd y reiniciaste, la configuración se perdió.cmd.exe
ventana, antes de probar elnpm
comando, ¿ iniciapython
o%PYTHON%
inicia un intérprete de Python? Si no, no lo has configurado correctamente.Respuestas:
Su problema es que no configuró la variable de entorno.
El error dice claramente esto:
Y en tu comentario, dices que hiciste esto:
Eso es bueno, pero eso no establece la
PYTHON
variable, establece laPYTHONPATH
variable.Mientras tanto, solo usar el
set
comando solo afecta lacmd
sesión actual . Si reinicia después de eso, como dice que lo hizo, termina con unacmd
sesión completamente nueva que no tiene esa variable configurada.Hay algunas formas de establecer las variables de entorno de forma permanente: la más fácil está 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 lo
set
correcto antes delnpm
comando, sin reiniciar en el medio.Puede probar si ha hecho las cosas bien haciendo exactamente lo mismo que el script de configuración está tratando de hacer: antes de ejecutar
npm
, intente ejecutar%PYTHON%
. Si lo ha hecho bien, obtendrá un intérprete de Python (que puede abandonar de inmediato). Si obtiene un error, no lo ha hecho bien.Hay dos problemas con esto:
En primer lugar, se está configurando
PYTHON
a;D:\Python
. Ese punto y coma adicional está bien para una lista de rutas separadas por punto y coma, comoPATH
oPYTHONPATH
, pero no para un solo valor comoPYTHON
. Del mismo modo, 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 quieresset PYTHON=D:\Python
.En segundo lugar,
D:\Python
no es el camino a su intérprete de Python. Es algo comoD:\Python\Python.exe
, oD:\Python\bin\Python.exe
. Encuentre la ruta correcta, asegúrese de que funcione por sí sola (por ejemplo, escribaD:\Python\bin\Python.exe
y asegúrese de obtener un intérprete de Python), luego configure la variable y úsela.Entonces:
O, si desea que sea permanente, haga el equivalente en el Panel de control.
fuente
D
unidad es donde tengo Python en caso de que te lo preguntes. De nuevo, gracias por tu ayuda.set
comando en la ventana de comandos de NPM por alguna razón y luego ejecutar elmpm install jquery
comando justo después de eso. Si los hice por separado, no funcionó por alguna razón.set
comando solo afecta a lacmd
ventana actual , por lo que debe hacerlo antes de ejecutarlonpm
en la misma ventana. Si desea establecer variables de entorno de forma más permanente, eso está en el Panel de control del sistema, o equivalente para su versión de Windows.Si no ha instalado Python junto con todas las dependencias de nodo-gyp, simplemente abra Powershell o Git Bash con privilegios de administrador y ejecute:
y luego para instalar el paquete:
una vez instalado, tendrá todas las dependencias de nodo-gyp descargadas, pero aún necesita la variable de entorno. Validar Python se encuentra en la carpeta correcta:
Nota: utiliza python 2.7 no 3.x ya que no es compatible
Si no gime, continúe y cree su variable de entorno (usuario):
reinicie cmd y verifique que la variable existe a través de la
set PYTHON
cual debería devolver la variablePor último volver a aplicar
npm install <module>
fuente
setx PYTHON $env:USERPROFILE\.windows-build-tools\python27\python.exe
Para mí después de instalar windows-build-tools con el siguiente comentario
ejecutando el siguiente código
ha funcionado
fuente
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.
fuente
Uno y / o múltiples de esos deberían ayudar:
Agregue
C:\Python27\
a suPATH
variable (considerando que tiene Python instalado en este directorio)Cómo configurar la
PATH
variable env: http://www.computerhope.com/issues/ch000549.htmReinicie su consola y / o Windows después de configurar la variable.
En la misma sección que la anterior ("Variables de entorno"), agregue una nueva variable con nombre
PYTHON
y valorC:\Python27\python.exe
Reinicie su consola y / o Windows después de configurar la variable.
Abra la línea de comando de Windows (
cmd
) en modo Administrador .Cambie el directorio a su ruta de instalación de Python:
cd C:\Python27
haga el enlace simbólico necesario para algunas instalaciones:
mklink python2.7.exe python.exe
¡Tenga en cuenta que debe tener Python 2.x, NO 3.x , para ejecutar
node-gyp
instalaciones basadas!El texto a continuación dice acerca de Unix, pero la versión de Windows también requiere Python 2.x:
Este artículo también puede ayudar: https://github.com/nodejs/node-gyp#installation
fuente
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:
¡Y eso es!
fuente
Esto ayudó: https://www.npmjs.com/package/node-gyp
Seguí estos pasos:
luego:
fuente
hay alguna solución para resolver este problema: 1) ejecute su símbolo del sistema como "administrador".
Si la primera solución no resuelve su problema, pruebe esta:
2) abra un símbolo del sistema cuando el administrador pegue la siguiente línea de código y presione enter:
fuente
TL; DR Haga una copia o alias de su python.exe con el nombre python2.7.exe
Mi python 2.7 se instaló como
Siempre recibí este error, no importa cómo configuré (y verifiqué) la variable PYTHON env:
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 el proceso.env.PYTHON.
Resolví esto creando un alias para python.exe ejecutable con el nombre que estaba buscando node-gyp:
D:\app\Python27>mklink python2.7.exe python.exe
Necesita derechos de administrador para esta operación.
fuente
Lo siguiente funcionó para mí desde la línea de comandos como administrador:
Instalar windows-build-tools (esto puede tomar 15-20 minutos):
Agregar / actualizar la variable de entorno:
Instalación de nodo-gyp:
Cambiar el nombre del archivo exe de Python a Python2.7.
npm install module_name --save
fuente
No puedo evitar mencionar esto. Si está usando Python3 y falla con node-gyp, me entristece decirle que node-gyp actualmente no es compatible con python3.
Aquí hay un enlace para usted: https://github.com/nodejs/node-gyp/issues/1268 https://github.com/nodejs/node-gyp/issues/193
fuente
Esta es la forma más fácil de dejar que NPM haga todo por usted
fuente
La forma correcta es 1) Descargue e instale Python 2.7.14 desde aquí . 2) Establezca la variable de entorno para python desde aquí .
¡hecho!
nota: establezca la variable de entorno en consecuencia. Respondí aquí por las ventanas.
fuente
Encontré el mismo desafío al intentar instalar [email protected] .
Y después de mirar la documentación oficial actual, y haber leído las respuestas anteriores, me di cuenta de que no necesariamente tiene que instalar node-gyp ni instalar herramientas de compilación de Windows. Esto es lo que dice, aquí sobre la instalación de node-gyp en Windows . Recuerde que node-gyp está involucrado en el proceso de instalación de node-sass. Y realmente no tiene que volver a instalar otra versión de Python.
Este es el salvador, configure la ruta de Python que debe buscar "npm" al instalar cualquier paquete que requiera herramientas de compilación.
Había instalado python3.6.3, en windows-7, allí.
fuente
[email protected]
, cuandowindows-10
[email protected]
[email protected]
Python36/python
debería ser la ruta de acceso a su archivo ejecutable de Python.exe
hold Shift, and Right-Click
npm config set python
¿Por qué no descargar el instalador de Python aquí ? Hace el trabajo por usted cuando verifica la instalación de la ruta
fuente
Para mí, estos pasos solucionaron el problema:
1- Ejecutando este cmd como administrador:
npm install --global --production windows-build-tools
2- Luego se ejecuta
npm rebuild
después de completar el primer paso (especialmente completar la instalación de Python 2.7, que fue la causa principal del problema)fuente
Aquí está el comando correcto: establecer ruta =% ruta%; C: \ Python34 [Reemplazar con la ruta correcta de su instalación de Python]
Tuve el mismo problema y lo resolví así.
Como señalaron otras personas, esta es una configuración volátil, solo funciona para la sesión de cmd actual y (obviamente) debe establecer su ruta antes de ejecutar npm install.
Espero que esto ayude.
fuente
No es necesario volver a instalar esta excepción lanzada por el script node-gyp, luego intente reconstruir. Es suficiente variable de entorno de configuración como en mi caso:
fuente
Si está intentando usar esto en Cygwin, debe seguir las instrucciones de esta respuesta. (Es un problema cómo Cygwin trata los enlaces simbólicos de Windows).
fuente
Ejemplo: pg_config no ejecutable / error node-gyp
Solución: en Windows solo intente agregar PATH Env -> C: \ Archivos de programa \ PostgreSQL \ 12 \ bin
Trabaja para mí, ahora puedo usar npm i pg-promise por ejemplo u otras dependencias.
fuente
pg-promise
no necesitas esto. Probablemente fuiste atrapado por esto . Simplemente use la última versión, y estará bien, no necesita ninguna de esas cosas adicionales;)Para mí, el problema era que estaba usando la última versión del nodo y no la
LTS
versión que es la versión estable y recomendada para la mayoría de los usuarios.El uso de la
LTS
versión resolvió el problema.Puedes descargarlo desde aquí :
Versión LTS
Versión más reciente actual
fuente