From 19e2573be8ddc21dfa017861d1bb6f6a4f9a39dc Mon Sep 17 00:00:00 2001 From: Jesse Pretorius Date: Tue, 17 Apr 2018 20:24:23 +0100 Subject: [PATCH] Only replace python when re-initializing the venv We reinitialize the venv to ensure that the right version of python is in the venv, but we do not want virtualenv to also replace pip, setuptools and wheel so we tell it not to. If we don't do this then virtualenv will install the latest available version, which is not what we want. Change-Id: Iad3ed2fbc9840305498fa2dfffdcb39043b9abe8 Partial-Bug: #1764470 --- tasks/python_venv_install.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tasks/python_venv_install.yml b/tasks/python_venv_install.yml index 71f2621..f4c8961 100644 --- a/tasks/python_venv_install.yml +++ b/tasks/python_venv_install.yml @@ -64,10 +64,21 @@ notify: - venv changed +# NOTE(odyssey4me): +# We reinitialize the venv to ensure that the right +# version of python is in the venv, but we do not +# want virtualenv to also replace pip, setuptools +# and wheel so we tell it not to. +# We do not use --always-copy for CentOS/SuSE due +# to https://github.com/pypa/virtualenv/issues/565 - name: Update virtualenv python and paths shell: | sed -si '1s/^.*python.*$/#!{{ (venv_destination_path ~ '/bin') | replace ('/','\/') }}\/python/' {{ venv_destination_path }}/bin/* - virtualenv {{ venv_destination_path }} + virtualenv {{ venv_destination_path }} \ + {{ (ansible_pkg_mgr == 'apt') | ternary('--always-copy', '') }} \ + --no-pip \ + --no-setuptools \ + --no-wheel args: executable: /bin/bash warn: no