1

去年我在 ubuntu 16.04.5 LTS 上测试了 CARLA,这是一个自动驾驶汽车模拟器,当时我已经安装了 pygame。当时 pygame 已安装在 /usr/lib/python2.7/dist-packages/pygame 下,我在那里修复了一个文件以使其正常工作。现在,最近我为机器重新安装了 ubuntu 16.04.5 LTS(仅操作系统部分)并尝试测试 CARLA,发现我必须安装 pygame(当然是这样)。所以我做了pip install pygame(没有 sudo),现在 CARLA 又可以工作了。
但是很快我发现pygame的安装位置现在不是/usr/lib/python2.7/dist-packages/pygame而是~/.local/lib/python2.7/site-packages/pygame。
为什么它安装在我的本地主目录中,而不是在系统目录中?(我尝试使用 sudo 安装它,但它说要求已经满足。)
我试过了python -m pip uninstall pip但收到下面的消息。

 Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
You are using pip version 8.1.1, however version 19.0.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

我应该怎么做pip upgrade
添加:这个问题与“sudo”或“apt install”无关。通常在 中apt install,如果我们省略sudo,它会要求 root 权限并且不会安装它。但是 pip 将它安装在 ~/.local 下。因此,这个问题与建议的重复问题不同。

4

1 回答 1

0

首先,python -m pip uninstall pip是为了卸载 pip,而不是pygame,所以你不想这样做。

当使用 调用时sudo,pip 将在系统范围内安装库/usr/lib,因此所有用户都可以访问它们。

当在没有 sudo和/或带有标志的情况下调用时--user,它们只会为您的用户安装在您的主目录上。在任何一种情况下,都pip报告该库已安装,并且不需要重新安装它。看看triplee提供的链接,以及这里

您可以使用以下内容来验证 Python 是否查看这两个路径以查找可用库。

import sys
print(sys.path)

为了解决您的问题,这两个位置都很好,这只是一个偏好问题。

如果您想从中卸载pygame~/.local您应该尝试pip uninstall pygame,然后sudo pip install pygame再次使用,以进行系统范围的静态版本安装。

在我看来,最好在本地收集用户依赖项,这样每个用户都可以根据自己的要求自由安装/删除/更新库和模块,最好是在他的虚拟环境中。

于 2019-02-13T07:58:43.263 回答