diff --git a/templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template index dba6a227f2b..e73b839a284 100644 --- a/templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template +++ b/templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template @@ -19,6 +19,10 @@ <%include file="../../apt_get_basic.include"/> <%include file="../../gcp_api_libraries.include"/> <%include file="../../python_deps.include"/> + # Install pip and virtualenv for Python 3.4 + RUN curl https://bootstrap.pypa.io/get-pip.py | python3.4 + RUN python3.4 -m pip install virtualenv + <%include file="../../run_tests_addons.include"/> # Define the default command. CMD ["bash"] diff --git a/tools/dockerfile/test/python_jessie_x64/Dockerfile b/tools/dockerfile/test/python_jessie_x64/Dockerfile index 41b670c06c6..bd9d55ed8a2 100644 --- a/tools/dockerfile/test/python_jessie_x64/Dockerfile +++ b/tools/dockerfile/test/python_jessie_x64/Dockerfile @@ -68,6 +68,10 @@ RUN pip install --upgrade pip==10.0.1 RUN pip install virtualenv RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.5.2.post1 six==1.10.0 twisted==17.5.0 +# Install pip and virtualenv for Python 3.4 +RUN curl https://bootstrap.pypa.io/get-pip.py | python3.4 +RUN python3.4 -m pip install virtualenv + # Prepare ccache RUN ln -s /usr/bin/ccache /usr/local/bin/gcc RUN ln -s /usr/bin/ccache /usr/local/bin/g++ diff --git a/tools/run_tests/helper_scripts/build_python.sh b/tools/run_tests/helper_scripts/build_python.sh index b0a6f0f4d4d..cdcb2aa116e 100755 --- a/tools/run_tests/helper_scripts/build_python.sh +++ b/tools/run_tests/helper_scripts/build_python.sh @@ -112,10 +112,6 @@ export CFLAGS="-I$ROOT/include -std=gnu99 -fno-wrapv $CFLAGS" export GRPC_PYTHON_BUILD_WITH_CYTHON=1 export LANG=en_US.UTF-8 -# Default python on the host to fall back to when instantiating e.g. the -# virtualenv. -HOST_PYTHON=${HOST_PYTHON:-python} - # If ccache is available on Linux, use it. if [ "$(is_linux)" ]; then # We're not on Darwin (Mac OS X) @@ -132,14 +128,9 @@ fi # Perform build operations # ############################ -# Instantiate the virtualenv, preferring to do so from the relevant python -# version. Even if these commands fail (e.g. on Windows due to name conflicts) -# it's possible that the virtualenv is still usable and we trust the tester to -# be able to 'figure it out' instead of us e.g. doing potentially expensive and -# unnecessary error recovery by `rm -rf`ing the virtualenv. -($PYTHON -m virtualenv "$VENV" || - $HOST_PYTHON -m virtualenv -p "$PYTHON" "$VENV" || - true) +# Instantiate the virtualenv from the Python version passed in. +$PYTHON -m pip install virtualenv +$PYTHON -m virtualenv "$VENV" VENV_PYTHON=$(script_realpath "$VENV/$VENV_RELATIVE_PYTHON") # See https://github.com/grpc/grpc/issues/14815 for more context. We cannot rely