From 809bf85426812ece19bf1f19dff63a13d85099d6 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Thu, 24 Dec 2020 16:25:09 +0100 Subject: [PATCH] [perf] pyenvinstall: reinstall only when requirements are change Create a (PY_ENV)/requirements.sha256 file with sha256 sums of the ./requirements*.txt files and reinstall only if the sha256 sums change. Suggested-by: @dalf / https://github.com/searx/searx/pull/2418#pullrequestreview-558426579 Signed-off-by: Markus Heiser --- utils/makefile.python | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/utils/makefile.python b/utils/makefile.python index 0ae912b5..eab9b20e 100644 --- a/utils/makefile.python +++ b/utils/makefile.python @@ -95,7 +95,13 @@ quiet_cmd_pyinstall = INSTALL $2 # $2 path to folder with setup.py, this uses pip from pyenv (not OS!) quiet_cmd_pyenvinstall = PYENV install $2 - cmd_pyenvinstall = $(PY_ENV_BIN)/python -m pip $(PIP_VERBOSE) install -e $2$(PY_SETUP_EXTRAS) + 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) ;\ + sha256sum requirements*.txt > $(PY_ENV)/requirements.sha256 ;\ + else \ + echo "PYENV $2 already installed"; \ + fi # Uninstall the package. Since pip does not uninstall the no longer needed # depencies (something like autoremove) the depencies remain.