Skip to content

Commit 4d533cc

Browse files
committed
Don't enable global site when enabling user site
1 parent 1d05ba8 commit 4d533cc

File tree

1 file changed

+5
-11
lines changed

1 file changed

+5
-11
lines changed

tests/lib/venv.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,10 @@ def _create(self, clear: bool = False) -> None:
9191
def _customize_site(self) -> None:
9292
# Enable user site (before system).
9393
contents = textwrap.dedent(
94-
"""
94+
f"""
9595
import os, site, sys
9696
if not os.environ.get('PYTHONNOUSERSITE', False):
97-
site.ENABLE_USER_SITE = True
97+
site.ENABLE_USER_SITE = {self._user_site_packages}
9898
# First, drop system-sites related paths.
9999
original_sys_path = sys.path[:]
100100
known_paths = set()
@@ -106,7 +106,8 @@ def _customize_site(self) -> None:
106106
original_sys_path.remove(path)
107107
sys.path = original_sys_path
108108
# Second, add user-site.
109-
site.addsitedir(site.getusersitepackages())
109+
if {self._user_site_packages}:
110+
site.addsitedir(site.getusersitepackages())
110111
# Third, add back system-sites related paths.
111112
for path in site.getsitepackages():
112113
site.addsitedir(path)
@@ -142,12 +143,5 @@ def user_site_packages(self) -> bool:
142143

143144
@user_site_packages.setter
144145
def user_site_packages(self, value: bool) -> None:
146+
self._user_site_packages = value
145147
self._customize_site()
146-
pyvenv_cfg = self.location.joinpath("pyvenv.cfg")
147-
modified_lines = []
148-
for line in pyvenv_cfg.read_text().splitlines():
149-
k, v = line.split("=", 1)
150-
if k.strip() == "include-system-site-packages":
151-
line = f"include-system-site-packages = {str(bool(value)).lower()}"
152-
modified_lines.append(line)
153-
pyvenv_cfg.write_text("\n".join(modified_lines))

0 commit comments

Comments
 (0)