From 80bbf2e8a57b65fe558f06411b0181d1f4211499 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bern=C3=A1t=20G=C3=A1bor?= Date: Tue, 13 Oct 2020 17:17:50 +0100 Subject: [PATCH] Fix isolated environment call MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bernát Gábor --- src/build/env.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/build/env.py b/src/build/env.py index c415b5b2..5ac7d21a 100644 --- a/src/build/env.py +++ b/src/build/env.py @@ -6,10 +6,8 @@ import sysconfig import tempfile import types - from typing import Dict, Iterable, List, Optional, Sequence, Type - if sys.version_info[0] == 2: # pragma: no cover FileExistsError = OSError @@ -58,6 +56,7 @@ def __init__(self, remove_paths, _executable=sys.executable): # type: (Sequence self._path = None # type: Optional[str] self._remove_paths = [] # type: List[str] self._executable = _executable + self._old_executable = None # type: Optional[str] # normalize paths so that we can compare them -- required on case insensitive systems for path in remove_paths: @@ -227,6 +226,8 @@ def __enter__(self): # type: () -> IsolatedEnvironment self._create_env_venv() self._pop_env('PIP_REQUIRE_VIRTUALENV') + # address https://github.com/pypa/pep517/pull/93 + self._old_executable, sys.executable = sys.executable, self._executable return self @@ -235,6 +236,8 @@ def __exit__(self, typ, value, traceback): """ Restores the everything to the original state """ + if self._old_executable is not None: + sys.executable = self._old_executable if self.path and os.path.isdir(self.path): shutil.rmtree(self.path)