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



我对预期的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的官方文档建议运行:

python -m pip install -U pip

这给出了相同的许可错误。

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

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

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

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

将pip安装为root的命令是

sudo apt-get install pip

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

相关内容

最新更新