Pip不需要root用户安装但需要root用户升级

时间:2021-07-15 19:48:14

标签: python python-3.x pip

我对预期的 pip 用法感到困惑。 Pip 随 Python 一起安装,这很棒,但是当新版本出现时,我收到以下警告:

WARNING: You are using pip version 21.1.1; however, version 21.1.3 is available.
You should consider upgrading via the '/usr/local/opt/python@3.8/bin/python3.8 -m pip install --upgrade pip' command.

我按照说明使用他们提供的命令安装它。但随后它卸载了我现有的 pip 并且无法安装新版本。

Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 21.1.1
    Uninstalling pip-21.1.1:
ERROR: Could not install packages due to an OSError: Cannot move the non-empty directory '/usr/local/lib/python3.8/site-packages/pip-21.1.1.dist-info/': Lacking write permission to '/usr/local/lib/python3.8/site-packages/pip-21.1.1.dist-info/'.

现在无法识别 pip 命令,升级 pip 的官方 documentation 建议运行:

python -m pip install -U pip

这给出了相同的权限错误。

我在谷歌上搜索了这个错误,发现社区强烈建议不要从这些问题(thisthis)中使用 sudo。他们还建议 pip3 install --upgrade pip --user 也给出了同样的错误。普遍的共识是只在虚拟环境中安装 pip 包,但我对是否完全卸载 pip 犹豫不决。

所以我使用 sudo 安装了 pip,但不清楚我是否无意中影响(或将影响未来)系统范围的安装,或者我将如何检查这些。

我不明白为什么在 pip 内安装 /usr/local/ 需要 sudo,以及我是否应该只在虚拟环境中专门使用 pip 而不要在虚拟环境之外使用

2 个答案:

答案 0 :(得分:0)

pip 可以与 sudo 一起安装到您无权写入的文件夹中。但是,它可以在该文件夹的外部安装软件包(因此,安装到您具有写入权限的文件夹中)。但是,建议您不要将 pip 安装到根文件夹中,而是将其安装到您的主目录中。

答案 1 :(得分:0)

以root身份安装pip的命令是

sudo apt-get install pip

然后它会提示您输入密码。我建议您在安装某些东西时使用 sudo。