npm install -g semantic-release-cliVerbose output (from npm or node-gyp):
⟩ npm install -g semantic-release-cli
npm WARN deprecated [email protected]: Use uuid module instead
/home/linuxbrew/.linuxbrew/bin/semantic-release-cli -> /home/linuxbrew/.linuxbrew/lib/node_modules/semantic-release-
cli/bin/semantic-release.js
> [email protected] install /home/linuxbrew/.linuxbrew/lib/node_modules/semantic-release-cli/node_modules/keytar
> node-gyp rebuild
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "/usr/lib/python2.7", you can set the PYTHON env variable.
gyp ERR! stack at PythonFinder.failNoPython (/home/linuxbrew/.linuxbrew/lib/node_modules/npm/node_modules/node-g
yp/lib/configure.js:483:19)
gyp ERR! stack at PythonFinder.<anonymous> (/home/linuxbrew/.linuxbrew/lib/node_modules/npm/node_modules/node-gy
p/lib/configure.js:397:16)
gyp ERR! stack at F (/home/linuxbrew/.linuxbrew/lib/node_modules/npm/node_modules/which/which.js:68:16)
gyp ERR! stack at E (/home/linuxbrew/.linuxbrew/lib/node_modules/npm/node_modules/which/which.js:80:29)
gyp ERR! stack at /home/linuxbrew/.linuxbrew/lib/node_modules/npm/node_modules/which/which.js:89:16
gyp ERR! stack at /home/linuxbrew/.linuxbrew/lib/node_modules/npm/node_modules/which/node_modules/isexe/index.js
:42:5
gyp ERR! stack at /home/linuxbrew/.linuxbrew/lib/node_modules/npm/node_modules/which/node_modules/isexe/mode.js:
8:5
gyp ERR! stack at FSReqWrap.oncomplete (fs.js:153:5)
gyp ERR! System Linux 4.4.0-43-Microsoft
gyp ERR! command "/home/linuxbrew/.linuxbrew/Cellar/node/8.9.1/bin/node" "/home/linuxbrew/.linuxbrew/lib/node_module
s/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/linuxbrew/.linuxbrew/lib/node_modules/semantic-release-cli/node_modules/keytar
gyp ERR! node -v v8.9.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/semantic-release-cli/node_modules/keytar)
:
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
+ [email protected]
added 2 packages and updated 1 package in 65.389s
When I try set the python env variable with either:
node-gyp --python /home/linuxbrew/.linuxbrew/bin/python2.7
or
node-gyp --python /usr/lib/python2.7
I get the help text pop up, like it's an invalid command:
Usage: node-gyp <command> [options]
where <command> is one of:
- build - Invokes `make` and builds the module
- clean - Removes any generated build files and the "out" dir
- configure - Generates a Makefile for the current module
- rebuild - Runs "clean", "configure" and "build" all at once
- install - Install node development files for the specified node version.
- list - Prints a listing of the currently installed node development files
- remove - Removes the node development files for the specified version
[email protected] /home/linuxbrew/.linuxbrew/lib/node_modules/node-gyp
[email protected]
I have tried to keep everything on WSL for developement but always seem to run into issues with node-gyp
Any advice greatly appreciated
Here is my whereis details:
⟩ whereis python
python: /usr/bin/python3.5 /usr/bin/python3.5m /usr/lib/python2.7 /usr/lib/python3.5 /etc/python3.5 /usr/local/lib/p
ython3.5 /usr/share/python /home/linuxbrew/.linuxbrew/bin/python2.7 /home/linuxbrew/.linuxbrew/bin/python2.7-config
⟩ whereis node
node: /home/linuxbrew/.linuxbrew/bin/node
md5-38cd267ebd4765b1890e4e982458067b
⟩ whereis npm
npm: /home/linuxbrew/.linuxbrew/bin/npm
md5-38cd267ebd4765b1890e4e982458067b
⟩ whereis .node-gyp
: /usr/bin/. /usr/sbin/. /usr/lib/. /bin/. /sbin/. /etc/. /lib/. /lib64/. /usr/games/. /usr/local/bin/. /usr/local/s
bin/. /usr/local/etc/. /usr/local/lib/. /usr/local/games/. /usr/include/. /usr/local/. /usr/share/. /home/linuxbrew/
.linuxbrew/bin/. /mnt/c/Program Files (x86)/Intel/iCLS Client/. /mnt/c/Program Files/Intel/iCLS Client/. /mnt/c/Wind
ows/System32/. /mnt/c/Windows/. /mnt/c/Windows/System32/wbem/. /mnt/c/Windows/System32/WindowsPowerShell/v1.0/. /mnt
/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/DAL/. /mnt/c/Program Files/Intel/Intel(R) Managem
ent Engine Components/DAL/. /mnt/c/Program Files (x86)/Intel/Intel(R) Management Engine Components/IPT/. /mnt/c/Prog
ram Files/Intel/Intel(R) Management Engine Components/IPT/. /mnt/c/Program Files/Intel/WiFi/bin/. /mnt/c/Program Fil
es/Common Files/Intel/WirelessCommon/. /mnt/c/ProgramData/chocolatey/bin/. /mnt/c/Program Files/Git/cmd/. /mnt/c/Use
rs/spenc/AppData/Local/Microsoft/WindowsApps/. /mnt/c/Program Files/Microsoft VS Code/bin/. /usr/share/man/cs/. /usr
/share/man/da/. /usr/share/man/de/. /usr/share/man/es/. /usr/share/man/fi/. /usr/share/man/fr/. /usr/share/man/hu/.
/usr/share/man/id/. /usr/share/man/it/. /usr/share/man/ja/. /usr/share/man/ko/. /usr/share/man/man1/. /usr/share/man
/man2/. /usr/share/man/man3/. /usr/share/man/man4/. /usr/share/man/man5/. /usr/share/man/man6/. /usr/share/man/man7/
. /usr/share/man/man8/. /usr/share/man/man9/. /usr/share/man/nl/. /usr/share/man/pl/. /usr/share/man/pt/. /usr/share
/man/pt_BR/. /usr/share/man/ru/. /usr/share/man/sl/. /usr/share/man/sv/. /usr/share/man/tr/. /usr/share/man/zh_CN/.
/usr/share/man/zh_TW/. /usr/share/info/. /home/linuxbrew/.linuxbrew/share/man/. /mnt/c/Users/spenc/gitrepos/.
Try export PYTHON=(path to python 2.7 binary) before running node-gyp
Thanks @bzoz, Tried that and it's still giving the Error: Can't find Python executable "/usr/lib/python2.7", you can set the PYTHON env variable error
Here is what I entered:
/usr/lib/python2.7
⟩ export PYTHON=(/usr/lib/python2.7)
HOME /home/scott
HOSTTYPE x86_64
INFOPATH /home/linuxbrew/.linuxbrew/share/info:
LANG en_US.UTF-8
LESSCLOSE '/usr/bin/lesspipe %s %s'
LESSOPEN '| /usr/bin/lesspipe %s'
LOGNAME scott
LS_COLORS 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=4'…
MANPATH '/home/linuxbrew/.linuxbrew/share/man' '.'
NAME DESKTOP-KCGTGRV
OMF_CONFIG /home/scott/.config/omf
OMF_PATH /home/scott/.local/share/omf
PATH '/home/linuxbrew/.linuxbrew/bin' '/home/scott/bin' '/home/scott/.'…
PWD /usr/lib/python2.7
SHELL /bin/bash
SHLVL 3
TERM xterm-256color
USER scott
XDG_DATA_DIRS /usr/local/share:/usr/share:/var/lib/snapd/desktop
And my whereis python:
⟩ whereis python
python: /usr/bin/python3.5 /usr/bin/python3.5m /usr/lib/python2.7 /usr/lib/python3.5 /etc/python3.5 /usr/local/lib/p
ython3.5 /usr/share/python /home/linuxbrew/.linuxbrew/bin/python2.7 /home/linuxbrew/.linuxbrew/bin/python2.7-config
I meant something like export PYTHON=/usr/bin/python2.7.
The /usr/lib/python2.7 is probably a directory, not an executable. I guess you should set the PYTHON env to /home/linuxbrew/.linuxbrew/bin/python2.7
@spences10 Did it work?
You're right @bzoz I didn't check that 🙃
And you're right again the binary is in the /home/linuxbrew/.linuxbrew/bin/python2.7 location...
Forgive my ignorance I thought that there would be a symlink if I added a location from the wehreis I don't think I actually know what whereis does.
I'll try this again and let you know.
Thanks for the help 👍
I'm not sure if this is any help, first I added the correct path:
export PYTHON=(/home/linuxbrew/.linuxbrew/bin/python2.7)
It took me to the Python repl, so I exit() out, here is the output:
⟩ export PYTHON=(/home/linuxbrew/.linuxbrew/bin/python2.7)
Python 2.7.14 (default, Sep 25 2017, 20:36:51)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
HOME /home/scott
HOSTTYPE x86_64
INFOPATH /home/linuxbrew/.linuxbrew/share/info:
LANG en_US.UTF-8
LESSCLOSE '/usr/bin/lesspipe %s %s'
LESSOPEN '| /usr/bin/lesspipe %s'
LOGNAME scott
LS_COLORS 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=4'…
MANPATH '/home/linuxbrew/.linuxbrew/share/man' '.'
NAME DESKTOP-KCGTGRV
OMF_CONFIG /home/scott/.config/omf
OMF_PATH /home/scott/.local/share/omf
PATH '/home/linuxbrew/.linuxbrew/bin' '/home/scott/bin' '/home/scott/.'…
PWD /mnt/c/Users/spenc
SHELL /bin/bash
SHLVL 3
TERM xterm-256color
USER scott
XDG_DATA_DIRS /usr/local/share:/usr/share:/var/lib/snapd/desktop
Then I checked node-gyp configure here's the output:
⟩ node-gyp configure
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | x64
gyp info spawn /home/linuxbrew/.linuxbrew/bin/python2
gyp info spawn args [ '/home/linuxbrew/.linuxbrew/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/mnt/c/Users/spenc/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/home/linuxbrew/.linuxbrew/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/home/scott/.node-gyp/8.9.1/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/home/scott/.node-gyp/8.9.1',
gyp info spawn args '-Dnode_gyp_dir=/home/linuxbrew/.linuxbrew/lib/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/home/scott/.node-gyp/8.9.1/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/mnt/c/Users/spenc',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.' ]
gyp: binding.gyp not found (cwd: /mnt/c/Users/spenc) while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/home/linuxbrew/.linuxbrew/lib/node_modules/node-gyp/lib/configure.js:3
36:16)
gyp ERR! stack at emitTwo (events.js:126:13)
gyp ERR! stack at ChildProcess.emit (events.js:214:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Linux 4.4.0-43-Microsoft
gyp ERR! command "/home/linuxbrew/.linuxbrew/Cellar/node/8.9.1/bin/node" "/home/linuxbrew/.linuxbrew/bin/node-gyp" "
configure"
gyp ERR! cwd /mnt/c/Users/spenc
gyp ERR! node -v v8.9.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
@spences10 Drop the parens in PYTHON=(/path/to/python) and it should work. You can also set python in your .npmrc.
Thanks @bnoordhuis I now get a different error:
⟩ node-gyp rebuild
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | linux | x64
gyp info spawn /home/linuxbrew/.linuxbrew/bin/python2.7
gyp info spawn args [ '/home/linuxbrew/.linuxbrew/lib/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/mnt/c/Users/spenc/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/home/linuxbrew/.linuxbrew/lib/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp info spawn args '/home/scott/.node-gyp/8.9.1/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/home/scott/.node-gyp/8.9.1',
gyp info spawn args '-Dnode_gyp_dir=/home/linuxbrew/.linuxbrew/lib/node_modules/node-gyp',
gyp info spawn args '-Dnode_lib_file=/home/scott/.node-gyp/8.9.1/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/mnt/c/Users/spenc',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.' ]
gyp: binding.gyp not found (cwd: /mnt/c/Users/spenc) while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/home/linuxbrew/.linuxbrew/lib/node_modules/node-gyp/lib/configure.js:3
36:16)
gyp ERR! stack at emitTwo (events.js:126:13)
gyp ERR! stack at ChildProcess.emit (events.js:214:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Linux 4.4.0-43-Microsoft
gyp ERR! command "/home/linuxbrew/.linuxbrew/Cellar/node/8.9.1/bin/node" "/home/linuxbrew/.linuxbrew/bin/node-gyp" "
rebuild"
gyp ERR! cwd /mnt/c/Users/spenc
gyp ERR! node -v v8.9.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
So, making progress 😄
You need to be inside the directory of the add-on (native module) you want to build (or pass -C /path/to/addon to node-gyp.)
Most helpful comment
I meant something like
export PYTHON=/usr/bin/python2.7.The
/usr/lib/python2.7is probably a directory, not an executable. I guess you should set thePYTHONenv to/home/linuxbrew/.linuxbrew/bin/python2.7