From a89004f746f32b4e80a98a42048850aa091b5d59 Mon Sep 17 00:00:00 2001 From: Jonathon Fernyhough Date: Thu, 5 Sep 2019 23:04:00 +0100 Subject: [PATCH 1/6] Override PIP_USER if inside a VIRTUAL_ENV --- src/pip/_internal/configuration.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pip/_internal/configuration.py b/src/pip/_internal/configuration.py index 6843557855f..50be1d9e251 100644 --- a/src/pip/_internal/configuration.py +++ b/src/pip/_internal/configuration.py @@ -360,6 +360,8 @@ def _normalized_keys(self, section, items): def _get_environ_vars(self): # type: () -> Iterable[Tuple[str, str]] """Returns a generator with all environmental vars with prefix PIP_""" + if 'VIRTUAL_ENV' in os.environ: + os.environ['PIP_USER'] = 'no' for key, val in os.environ.items(): should_be_yielded = ( key.startswith("PIP_") and From 1d1b320d30c7819eea3b3304249b8c7cf5dd9e63 Mon Sep 17 00:00:00 2001 From: Jonathon Fernyhough Date: Thu, 5 Sep 2019 23:13:18 +0100 Subject: [PATCH 2/6] Add news entry --- news/6984.bugfix | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 news/6984.bugfix diff --git a/news/6984.bugfix b/news/6984.bugfix new file mode 100644 index 00000000000..e69de29bb2d From 5802ff682562950ae30e9253ff756aeedfd43b31 Mon Sep 17 00:00:00 2001 From: Jonathon Fernyhough Date: Fri, 6 Sep 2019 11:23:14 +0100 Subject: [PATCH 3/6] Check instead pip._internal.utils.virtualenv.running_under_virtualenv --- src/pip/_internal/configuration.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pip/_internal/configuration.py b/src/pip/_internal/configuration.py index 50be1d9e251..e60cc2903c3 100644 --- a/src/pip/_internal/configuration.py +++ b/src/pip/_internal/configuration.py @@ -29,6 +29,7 @@ from pip._internal.utils.compat import WINDOWS, expanduser from pip._internal.utils.misc import ensure_dir, enum from pip._internal.utils.typing import MYPY_CHECK_RUNNING +from pip._internal.utils.virtualenv import running_under_virtualenv if MYPY_CHECK_RUNNING: from typing import ( @@ -360,7 +361,7 @@ def _normalized_keys(self, section, items): def _get_environ_vars(self): # type: () -> Iterable[Tuple[str, str]] """Returns a generator with all environmental vars with prefix PIP_""" - if 'VIRTUAL_ENV' in os.environ: + if running_under_virtualenv: os.environ['PIP_USER'] = 'no' for key, val in os.environ.items(): should_be_yielded = ( From d19179b8404184c9703fa5db9b208362db0ad2ce Mon Sep 17 00:00:00 2001 From: Jonathon Fernyhough Date: Wed, 25 Sep 2019 19:37:14 +0100 Subject: [PATCH 4/6] Fix function call --- src/pip/_internal/configuration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pip/_internal/configuration.py b/src/pip/_internal/configuration.py index e60cc2903c3..f220886f1bd 100644 --- a/src/pip/_internal/configuration.py +++ b/src/pip/_internal/configuration.py @@ -361,7 +361,7 @@ def _normalized_keys(self, section, items): def _get_environ_vars(self): # type: () -> Iterable[Tuple[str, str]] """Returns a generator with all environmental vars with prefix PIP_""" - if running_under_virtualenv: + if running_under_virtualenv(): os.environ['PIP_USER'] = 'no' for key, val in os.environ.items(): should_be_yielded = ( From 781d94688fdba8a8f0d5ba4aba8d021f43770be6 Mon Sep 17 00:00:00 2001 From: Jonathon Fernyhough Date: Tue, 8 Oct 2019 09:41:02 +0100 Subject: [PATCH 5/6] Switch to pradyunsg's approach --- src/pip/_internal/commands/install.py | 7 ++++--- src/pip/_internal/configuration.py | 3 --- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/pip/_internal/commands/install.py b/src/pip/_internal/commands/install.py index b1acee94a56..4e329b2d15a 100644 --- a/src/pip/_internal/commands/install.py +++ b/src/pip/_internal/commands/install.py @@ -297,10 +297,11 @@ def run(self, options, args): "different installation locations" ) if virtualenv_no_global(): - raise InstallationError( - "Can not perform a '--user' install. User site-packages " - "are not visible in this virtualenv." + logger.info( + "Ignoring '--user', since user site-packages are not " + "visible in this virtualenv." ) + options.use_user_site = False install_options.append('--user') install_options.append('--prefix=') diff --git a/src/pip/_internal/configuration.py b/src/pip/_internal/configuration.py index f220886f1bd..6843557855f 100644 --- a/src/pip/_internal/configuration.py +++ b/src/pip/_internal/configuration.py @@ -29,7 +29,6 @@ from pip._internal.utils.compat import WINDOWS, expanduser from pip._internal.utils.misc import ensure_dir, enum from pip._internal.utils.typing import MYPY_CHECK_RUNNING -from pip._internal.utils.virtualenv import running_under_virtualenv if MYPY_CHECK_RUNNING: from typing import ( @@ -361,8 +360,6 @@ def _normalized_keys(self, section, items): def _get_environ_vars(self): # type: () -> Iterable[Tuple[str, str]] """Returns a generator with all environmental vars with prefix PIP_""" - if running_under_virtualenv(): - os.environ['PIP_USER'] = 'no' for key, val in os.environ.items(): should_be_yielded = ( key.startswith("PIP_") and From fb9129f030b96173a54d4a99b50ccbf53a8eadba Mon Sep 17 00:00:00 2001 From: Jonathon Date: Tue, 8 Oct 2019 16:13:14 +0000 Subject: [PATCH 6/6] Update install.py --- src/pip/_internal/commands/install.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pip/_internal/commands/install.py b/src/pip/_internal/commands/install.py index 4e329b2d15a..ead70294c31 100644 --- a/src/pip/_internal/commands/install.py +++ b/src/pip/_internal/commands/install.py @@ -301,7 +301,7 @@ def run(self, options, args): "Ignoring '--user', since user site-packages are not " "visible in this virtualenv." ) - options.use_user_site = False + options.use_user_site = False install_options.append('--user') install_options.append('--prefix=')