在/ usr / bin而非/ usr / local / bin中安装pip

时间:2019-03-27 23:12:44

标签: python pip upgrade

所以我正在尝试升级点子。当前在/ usr / bin中存在pip,但是当我使用“ pip install --upgrade pip”升级pip时,它将pip升级到/ usr / local / bin而不是/ usr / bin。无论如何,是否将pip安装保留在/ usr / bin中,并将所有pip库保留在/ usr / lib或/ usr / lib64等中?

1 个答案:

答案 0 :(得分:3)

通常,以root身份运行pip从来都不是一个好主意。您正在将文件安装到您的根目录中,而发行版的程序包管理器没有跟踪这些文件。

这听起来似乎并不那么糟糕,但是总的来说是这样,因为您的系统中充斥着可能与其他文件冲突的文件,并且可能很难清除。

Pip做正确的事,将自己在系统范围内安装到/usr/local中。通常的约定是,程序包管理器会跟踪位于您自己的目录/etc/varlocal系统目录之外的内容。

程序包管理器将覆盖这些目录之外的文件,而无需询问。 local个系统目录的对应目录为您提供了在系统范围内进行安装的机会,而不会引起混乱。但是,在大多数情况下,有更好的方法可以做到这一点。

例如,Python的最佳方法是使用virtualenv s。它们为您提供了一个隔离的环境,您可以激活该环境并将其安装到其中,包括最新版本的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中,但是您应该为此感到难过。

尽管如此,我真的不能足够强调。