Skip to content

Commit 084fc61

Browse files
committed
Don't suggest --user in virtual environment
1 parent 25114e1 commit 084fc61

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

news/9409.bugfix.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
``--user`` is no longer suggested incorrectly when pip fails with a permission
2+
error in a virtual environment.

src/pip/_internal/commands/install.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@
3131
write_output,
3232
)
3333
from pip._internal.utils.temp_dir import TempDirectory
34-
from pip._internal.utils.virtualenv import virtualenv_no_global
34+
from pip._internal.utils.virtualenv import (
35+
running_under_virtualenv,
36+
virtualenv_no_global,
37+
)
3538
from pip._internal.wheel_builder import (
3639
BinaryAllowedPredicate,
3740
build,
@@ -714,7 +717,7 @@ def create_os_error_message(error, show_traceback, using_user_site):
714717
user_option_part = "Consider using the `--user` option"
715718
permissions_part = "Check the permissions"
716719

717-
if not using_user_site:
720+
if not running_under_virtualenv() and not using_user_site:
718721
parts.extend([
719722
user_option_part, " or ",
720723
permissions_part.lower(),

tests/unit/test_command_install.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import pytest
55
from pip._vendor.packaging.requirements import Requirement
66

7+
from pip._internal.commands import install
78
from pip._internal.commands.install import (
89
create_os_error_message,
910
decide_user_install,
@@ -109,7 +110,8 @@ def test_rejection_for_location_requirement_options():
109110
' permissions.\n'),
110111
])
111112
def test_create_os_error_message(
112-
error, show_traceback, using_user_site, expected
113+
monkeypatch, error, show_traceback, using_user_site, expected
113114
):
115+
monkeypatch.setattr(install, "running_under_virtualenv", lambda: False)
114116
msg = create_os_error_message(error, show_traceback, using_user_site)
115117
assert msg == expected

0 commit comments

Comments
 (0)