2015-03-31 15 views
8

Używam "instalacji na przykład", aby pobrać i skompilować wszystkie zależności od małej aplikacji node.js, którą napisałem. Plik "package.json", którego używam, jest poprawny i zawiera wszystkie potrzebne informacje."Nie można znaleźć pliku wykonywalnego Pythona ..." - npm install zawiesza się

Jeden z pakietów do zainstalowania ma "węzeł-gyp" jako zależność, więc wcześniej zainstalowałem pakiet "python2".

Teraz, w pewnym momencie zaczynam się komunikaty o błędach:

> 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] 

Kwestie wydaje się, że zmienna środowiskowa brakuje.

Czy ktoś może wskazać mi właściwy kierunek? Niezależnie od tego, gdzie szukam w Internecie, nie ma żadnej wzmianki o zmiennej "PYTHON", tylko "PYTHONPATH" i inne podobne. Jaki jest poprawny sposób, aby to naprawić, aby nie uzyskać tych błędów?

UPDATE 1:

Po wykonaniu porady z tego wątku dodałem te polecenia przed wykonaniem "npm install":

PYTHON=/usr/sbin/python2 
export PYTHON 

Teraz ja dostaję ten błąd:

> 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] 

Uważam to za absurd, że mówi "... nie znaleziono: make ...". Czy istnieje taka możliwość? Jeśli tak, to w jaki sposób pakiety są instalowane poprawnie?

Szczerze mówiąc, nic nie rozumiem. Jakieś pomysły?

+0

Musisz ustawić zmienną środowiskową 'PYTHON'. To, co jest w tej zmiennej, będzie użyte. Nie ma znaczenia, czym jest 'PYTHONPATH'. – adarsh

+0

@adarsh ​​Tyle mogę powiedzieć. Czy mógłbyś rozwinąć? Jeśli odpowiesz na to pytanie, przegłosuję. – dsljanus

+0

z jakiego systemu operacyjnego używasz? jak zainstalowałeś python2? spróbuj wykonać to w linii poleceń najpierw – irqed

Odpowiedz

2

Po pierwsze: chcę podziękować wszystkim, którzy pomagali mi w wydaniu, a zwłaszcza @adarsh.

Prawdziwym problemem było to, że brakowało mi "make" i "gcc". Na początku, gdy sugerował to komunikat kompilatora, uznałem to za absurd. Należy jednak pamiętać, że jest to obraz WYCIĄGANY z rejestru Docker.

Dodałem "pacman -S --needed --noconfirm make gcc" w moim pliku Dockerfile, a proces budowania zakończy się pomyślnie.

Nie trzeba dodawać, że musiałem wprowadzić sugerowane zmiany w zmiennych środowiskowych.

+0

Gdzie musimy dodać linię: pacman -S --needed --noconfirm make gcc – iamnewuser

4

Spróbuj uruchomić ten

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

Dodaj to do profilu plik (jak ~/.bash_profile itd. W zależności od powłoki), aby to trwałe.

Jeśli twój pyton nie jest zainstalowany w /usr/bin/python, możesz uruchomić which python, aby dowiedzieć się, gdzie jest zainstalowany.

+0

Spróbuję i zgłoś JAK NAJSZYBCIEJ. – dsljanus

+0

To nie działa. Wywołuje ten błąd: "/ bin/sh: linia 0: eksport:':/usr/bin/python ': nie jest prawidłowym identyfikatorem ". Ponadto, podczas uruchamiania "który pyton", mówi, że nie można znaleźć "pythona" wewnątrz ścieżki. – dsljanus

+1

Przepraszam, popełniłem błąd w drugiej linii. Użyj 'export PYTHON'. Znaku $ nie należy używać. Zmienię odpowiedź – adarsh

-3

W CMD

jeśli lokalny na dysku:npm install express-generator

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

wybrać tak

#y 
1

Ten pracował dla mnie ..

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

Musimy wskazać python.exe nie tylko do folderu instalacyjnego.

Powiązane problemy