Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Can't find Python executable..." - npm install hangs

I am using "npm install" to download and compile all the dependencies of a small node.js app I have written. The "package.json" file I am using is correct and contains all the needed information.

One of the packages to be installed has "node-gyp" as a dependency, so I have previously installed the "python2" package.

Now, at a certain point I start getting error messages:

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

The issues seems to be that an environment variable is missing.

Can anyone point me in the right direction? No matter where I search on the Internet, there is no mention of a "PYTHON" variable, only "PYTHONPATH" and others like it. What is the correct way to fix this, so that I do not get those errors?

UPDATE 1:

After following advice from this thread I added these commands before executing "npm install":

PYTHON=/usr/sbin/python2
export PYTHON

Now I am getting this error:

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

I find it absurd that it says "...not found: make...". Is there any possibility of it being so? If yes, how come packages install correctly?

Frankly, I do not understand a thing. Any ideas?

like image 266
dlyk1988 Avatar asked Mar 31 '15 12:03

dlyk1988


People also ask

What to do if npm install hangs?

To solve the issue, try removing the entire node_modules/ folder and the package-lock. json file. Then try running the npm install command again. That may fix the issue.

Does npm install Python?

NPM has a package called windows-build-tools that should automatically install everything you need to get node-gyp working, including the Microsoft build tools, compilers, Python, and everything else required to build native Node modules on Windows.

Why is my npm not working?

The Npm command not found error can appear when you install or upgrade npm. On Windows, the cause of this error could be that a PATH or system variable is not correctly set. The error can also occur if you do not have npm or Node. js installed, have an outdated version, or have permission issues.


3 Answers

Try running this

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

Add this to profile file (like ~/.bash_profile etc. depending on your shell) to make it persistent.

If your python isn't installed in /usr/bin/python then you can run which python to find out where it is installed.

like image 127
adarsh Avatar answered Oct 11 '22 16:10

adarsh


First things first: I want to thank all who pitched in to help me with my issue, and especially @adarsh.

Now the real issue was that I was missing "make" and "gcc". At first, when a compiler message suggested so, I found it absurd. But keep in mind that this is an image PULLed from the Docker registry.

I added "pacman -S --needed --noconfirm make gcc" in my Dockerfile, and the build process completes successfully.

It should go without saying, that I also needed to make the suggested changes to the environmental variables.

like image 24
dlyk1988 Avatar answered Oct 11 '22 15:10

dlyk1988


This worked for me..

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

We need to point to python.exe not just up to the installation folder.

like image 34
hacker Avatar answered Oct 11 '22 14:10

hacker