在 /usr/bin 而不是 /usr/local/bin 中安装 pip

Jas*_*son 1 python pip upgrade

所以我正在尝试升级pip。当前 pip 存在于 /usr/bin 中,但是当我使用:“pip install --upgrade pip”升级 pip 时,它将 pip 升级到 /usr/local/bin 而不是 /usr/bin。有没有办法将 pip 安装保留在 /usr/bin 中,并将所有 pip 库保留在 /usr/lib 或 /usr/lib64 等中?

Dep*_*pau 5

一般来说,pip以 root 身份运行从来都不是一个好主意。您正在将文件安装到您的根目录,而您的发行版的包管理器并未跟踪这些文件。

这听起来可能并没有那么糟糕,但总体而言确实如此,因为您的系统中充满了可能与其他人发生冲突的文件,并且您可能很难删除这些文件。

Pip 正在做正确的事情,在系统范围内将自己安装到/usr/local. 一般的惯例是自己的目录中的东西外,中/etc/varlocal系统目录是由包管理器记录。

包管理器将在不询问的情况下覆盖这些目录之外的文件。local系统目录的对应部分让您有机会在系统范围内安装东西而不会被弄乱。然而,在大多数情况下,有更好的方法来做到这一点。

例如,使用 Python 的最佳方式是使用virtualenvs。它们为您提供了一个隔离的环境,您可以在其中激活和安装东西,包括最新版本的 pip。

您也可以以用户身份运行它(无需 sudo),但您必须将其bin目录添加到您的$PATH.

最好是你一个人离开/usr/bin/pip,否则可能会发生不好的事情。

要回答你的问题,如果你真的不能没有在拥有它/usr/bin或virtualenv中,我很伤心地告诉你那里是点子没有这样的记录选项。但是,您有两个选择:

  1. 删除发行版的 pip 包,然后符号链接/usr/bin/pip/usr/local/bin/pip. 这将起作用,但它仍将在技术上安装在/usr/local. 此外,pip必须删除依赖于您的发行版软件包的任何其他程序。
  2. (非常糟糕)下载 pip 的源代码,然后使用sudo python setup.py install --prefix=/usr. 这会将它放在 中/usr/bin,但是您应该为这样做而感到非常难过。

不过,我真的不能强调这种做法有多糟糕。