2015-03-31 16 views
8

Sto usando "npm install" per scaricare e compilare tutte le dipendenze di una piccola applicazione node.js che ho scritto. Il file "package.json" che sto utilizzando è corretto e contiene tutte le informazioni necessarie."Impossibile trovare l'eseguibile Python ..." - l'installazione di npm si blocca

Uno dei pacchetti da installare ha "node-gyp" come dipendenza, quindi ho precedentemente installato il pacchetto "python2".

Ora, ad un certo punto ho iniziare a ricevere messaggi di errore:

> node-gyp rebuild 

gyp ERR! configure error 
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable. 
gyp ERR! stack  at failNoPython (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:103:14) 
gyp ERR! stack  at /usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:42:11 
gyp ERR! stack  at F (/usr/lib/node_modules/npm/node_modules/which/which.js:40:25) 
gyp ERR! stack  at E (/usr/lib/node_modules/npm/node_modules/which/which.js:43:29) 
gyp ERR! stack  at /usr/lib/node_modules/npm/node_modules/which/which.js:54:16 
gyp ERR! stack  at FSReqWrap.oncomplete (fs.js:99:15) 
gyp ERR! System Linux 3.18.9-200.fc21.x86_64 
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" 
gyp ERR! cwd /srv/visitor/node_modules/phantom/node_modules/dnode/node_modules/weak 
gyp ERR! node -v v0.12.1 
gyp ERR! node-gyp -v v1.0.3 
gyp ERR! not ok 
npm WARN optional dep failed, continuing [email protected] 

I problemi sembra essere che una variabile di ambiente non è presente.

Qualcuno può indicarmi la giusta direzione? Indipendentemente da dove cerco su Internet, non vi è alcuna menzione di una variabile "PYTHON", solo "PYTHONPATH" e altri simili. Qual è il modo corretto per risolvere questo problema, in modo da non ottenere quegli errori?

UPDATE 1:

Dopo aver seguito consigliare dai questa discussione ho aggiunto questi comandi prima di eseguire "NPM install":

PYTHON=/usr/sbin/python2 
export PYTHON 

Ora sto ottenendo questo errore:

> node-gyp rebuild 

gyp ERR! build error 
gyp ERR! stack Error: not found: make 
gyp ERR! stack  at F (/usr/lib/node_modules/npm/node_modules/which/which.js:40:28) 
gyp ERR! stack  at E (/usr/lib/node_modules/npm/node_modules/which/which.js:43:29) 
gyp ERR! stack  at /usr/lib/node_modules/npm/node_modules/which/which.js:54:16 
gyp ERR! stack  at FSReqWrap.oncomplete (fs.js:99:15) 
gyp ERR! System Linux 3.18.9-200.fc21.x86_64 
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" 
gyp ERR! cwd /srv/visitor/node_modules/phantom/node_modules/dnode/node_modules/weak 
gyp ERR! node -v v0.12.1 
gyp ERR! node-gyp -v v1.0.3 
gyp ERR! not ok 
npm WARN optional dep failed, continuing [email protected] 

Trovo assurdo che dice "... non trovato: marca ...". C'è qualche possibilità che sia così? Se sì, come mai i pacchetti vengono installati correttamente?

Francamente, non capisco niente. Qualche idea?

+0

È necessario impostare la variabile di ambiente 'PYTHON'. Ciò che è sempre in quella variabile sarà usato. Non importa cosa sia 'PYTHONPATH'. – adarsh

+0

@adarsh ​​Quel che posso dire. Potresti per favore elaborare? Se ne fai una risposta, farò un voto. – dsljanus

+0

quale sistema operativo stai usando? come hai installato python2? prova ad eseguirlo in riga di comando prima – irqed

risposta

2

Prima di tutto: voglio ringraziare tutti coloro che sono intervenuti per aiutarmi con il mio problema, in particolare con @adarsh.

Ora il vero problema era che mi mancavano "make" e "gcc". All'inizio, quando un messaggio del compilatore lo suggeriva, lo trovavo assurdo. Ma tieni presente che questa è un'immagine estratta dal registro Docker.

Ho aggiunto "pacman -S --needed --noconfirm make gcc" nel file Docker e il processo di compilazione è stato completato correttamente.

Va da sé che ho anche bisogno di apportare le modifiche suggerite alle variabili ambientali.

+0

Dove dobbiamo aggiungere la linea: pacman -S --needed --noconfirm make gcc – iamnewuser

4

Provare a eseguire questo

PYTHON=$PYTHON:/usr/bin/python 
export PYTHON 

Aggiungi questo al profilo di file (come ~/.bash_profile ecc a seconda della shell) per renderlo persistente.

Se il tuo python non è installato in /usr/bin/python allora è possibile eseguire which python per scoprire dove è installato.

+0

Proverà a riferire AL PIÙ PRESTO. – dsljanus

+0

Non funziona. Produce questo errore: "/ bin/sh: riga 0: export:':/usr/bin/python ': non è un identificatore valido ". Inoltre, quando si esegue "which python", si dice che non è possibile trovare "python" all'interno del percorso. – dsljanus

+1

Oh scusa, ho fatto un errore nella seconda riga. Usa 'esportazione PYTHON'. Il segno $ non dovrebbe essere usato. Modificherò la risposta – adarsh

-3

In CMD

se locale sul disco:npm install express-generator

#npm install express-generator -g 
#express --ejs . 

sceglie Sì

#y 
1

Questo ha funzionato per me ..

node-gyp --python C:\Users\username\.windows-build-tools\python27\python.exe build 

Dobbiamo puntare a python.exe non solo fino alla cartella di installazione.

Problemi correlati