https://github.com/ekalinin/nodeenv/issues/333 https://github.com/ekalinin/nodeenv/pull/346 From 0d3ebaf7e13175e2871f59856f29d880a4cb3acf Mon Sep 17 00:00:00 2001 From: Sam James Date: Wed, 13 Dec 2023 04:13:24 +0000 Subject: [PATCH] Remove usage of non-portable `which` * Use Python's shutil.which() instead of shelling out to `which` to find Python 2 * Use `command -v` instead of `which` in README Fixes: https://github.com/ekalinin/nodeenv/issues/333 --- README.rst | 2 +- README.ru.rst | 2 +- nodeenv.py | 8 ++------ 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/README.rst b/README.rst index c9e130b..3459572 100644 --- a/README.rst +++ b/README.rst @@ -211,7 +211,7 @@ environment:: $ workon my_env $ npm install -g coffee-script - $ which coffee + $ command -v coffee /home/monty/virtualenvs/my_env/bin/coffee Creating a virtual environment with a custom prompt: diff --git a/README.ru.rst b/README.ru.rst index c3eb130..2cc821e 100644 --- a/README.ru.rst +++ b/README.ru.rst @@ -155,7 +155,7 @@ python'а:: $ workon my_env $ npm install -g coffee-script - $ which coffee + $ command -v coffee /home/monty/virtualenvs/my_env/bin/coffee diff --git a/nodeenv.py b/nodeenv.py index 9d5dd06..183ded2 100644 --- a/nodeenv.py +++ b/nodeenv.py @@ -707,12 +707,8 @@ def build_node_from_src(env_dir, src_dir, node_src_dir, args): # Currently, the node.js build scripts are using python2.*, # therefore we need to temporarily point python exec to the # python 2.* version in this case. - try: - _, which_python2_output = callit( - ['which', 'python2'], args.verbose, True, node_src_dir, env - ) - python2_path = which_python2_output[0] - except (OSError, IndexError): + python2_path = shutil.which('python2') + if not python2_path: raise OSError( 'Python >=3.0 virtualenv detected, but no python2 ' 'command (required for building node.js) was found'