From d70c5a621a3afe8a6da2ee1daa241467e42c1b75 Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Fri, 29 Jan 2021 08:16:44 +0100 Subject: [mod] more robust make pyenv / make pyenvinstall "make pyenv" ensures that ./local/py3/bin/python is an executable --- utils/makefile.python | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'utils/makefile.python') diff --git a/utils/makefile.python b/utils/makefile.python index 345434384..287012398 100644 --- a/utils/makefile.python +++ b/utils/makefile.python @@ -99,7 +99,8 @@ quiet_cmd_pyinstall = INSTALL $2 quiet_cmd_pyenvinstall = PYENV install $2 cmd_pyenvinstall = \ if ! cat $(PY_ENV)/requirements.sha256 2>/dev/null | sha256sum --check --status 2>/dev/null; then \ - $(PY_ENV_BIN)/python -m pip $(PIP_VERBOSE) install -e $2$(PY_SETUP_EXTRAS) ;\ + rm -f $(PY_ENV)/requirements.sha256; \ + $(PY_ENV_BIN)/python -m pip $(PIP_VERBOSE) install -e $2$(PY_SETUP_EXTRAS) &&\ sha256sum requirements*.txt > $(PY_ENV)/requirements.sha256 ;\ else \ echo "PYENV $2 already installed"; \ @@ -119,13 +120,13 @@ quiet_cmd_pyenvuninstall = PYENV uninstall $2 # $2 path to folder where virtualenv take place quiet_cmd_virtualenv = PYENV usage: $ source ./$@/bin/activate cmd_virtualenv = \ - if [ ! -d "./$(PY_ENV)" ];then \ - $(PYTHON) -m venv $(VTENV_OPTS) $2; \ + if [ -d "./$(PY_ENV)" -a -x "./$(PY_ENV_BIN)/python" ]; then \ + echo "PYENV using virtualenv from $2"; \ + else \ + $(PYTHON) -m venv $(VTENV_OPTS) $2; \ $(PY_ENV_BIN)/python -m pip install $(PIP_VERBOSE) -U pip wheel setuptools; \ - $(PY_ENV_BIN)/python -m pip install $(PIP_VERBOSE) -r requirements.txt; \ - else \ - echo "PYENV using virtualenv from $2"; \ - fi + $(PY_ENV_BIN)/python -m pip install $(PIP_VERBOSE) -r requirements.txt; \ + fi # $2 path to lint quiet_cmd_pylint = LINT $@ -- cgit v1.2.3 From 38b39ef0ae85b889b8a8401235c577c95845ed7a Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sat, 30 Jan 2021 14:25:23 +0100 Subject: [fix] re-add 'pip-exe' target - partial revert 9b48ae47 Target pip-exe is a prerequisite of the targets: - pyinstall - pyuninstall and was accidentally deleted in commit 9b48ae47. HINT: do not confuse pyinstall with penvinstall pyinstall & pyuninstall Installing into user's HOME using pip from OS, therefore the message is needed. pyenvinstall & pyenvuninstall Installing into virtualenv (./local) using pip which is provided by prerequisite 'pyenv' in the virtualenv. Signed-off-by: Markus Heiser --- utils/makefile.python | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'utils/makefile.python') diff --git a/utils/makefile.python b/utils/makefile.python index 287012398..f4fd02197 100644 --- a/utils/makefile.python +++ b/utils/makefile.python @@ -87,6 +87,22 @@ python-exe: @: endif +msg-pip-exe: + @echo "\n $(PIP) is required\n\n\ + Make sure you have updated pip installed, grab it from\n\ + https://pip.pypa.io or install it from your package\n\ + manager. On debian based OS these requirements are\n\ + installed by::\n\n\ + sudo -H apt-get install python$(PY)-pip\n" | $(FMT) + +ifeq ($(shell which $(PIP) >/dev/null 2>&1; echo $$?), 1) +pip-exe: msg-pip-exe + $(error The '$(PIP)' command was not found) +else +pip-exe: + @: +endif + # ------------------------------------------------------------------------------ # commands # ------------------------------------------------------------------------------ -- cgit v1.2.3