Skip to content

Commit d878727

Browse files
uranusjrxavfernandez
authored andcommitted
Don't suggest --user in virtual environment
1 parent 0f537c8 commit d878727

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
@@ -35,7 +35,10 @@
3535
write_output,
3636
)
3737
from pip._internal.utils.temp_dir import TempDirectory
38-
from pip._internal.utils.virtualenv import virtualenv_no_global
38+
from pip._internal.utils.virtualenv import (
39+
running_under_virtualenv,
40+
virtualenv_no_global,
41+
)
3942
from pip._internal.wheel_builder import (
4043
BinaryAllowedPredicate,
4144
build,
@@ -725,7 +728,7 @@ def create_os_error_message(error, show_traceback, using_user_site):
725728
user_option_part = "Consider using the `--user` option"
726729
permissions_part = "Check the permissions"
727730

728-
if not using_user_site:
731+
if not running_under_virtualenv() and not using_user_site:
729732
parts.extend([
730733
user_option_part, " or ",
731734
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)