Skip to content

Commit e803e7a

Browse files
committed
Don't suggest --user in virtual environment
1 parent 7369ac2 commit e803e7a

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
@@ -30,7 +30,10 @@
3030
)
3131
from pip._internal.utils.temp_dir import TempDirectory
3232
from pip._internal.utils.typing import MYPY_CHECK_RUNNING
33-
from pip._internal.utils.virtualenv import virtualenv_no_global
33+
from pip._internal.utils.virtualenv import (
34+
running_under_virtualenv,
35+
virtualenv_no_global,
36+
)
3437
from pip._internal.wheel_builder import build, should_build_for_install_command
3538

3639
if MYPY_CHECK_RUNNING:
@@ -722,7 +725,7 @@ def create_os_error_message(error, show_traceback, using_user_site):
722725
user_option_part = "Consider using the `--user` option"
723726
permissions_part = "Check the permissions"
724727

725-
if not using_user_site:
728+
if not running_under_virtualenv() and not using_user_site:
726729
parts.extend([
727730
user_option_part, " or ",
728731
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
from mock import patch
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)