pip应该在哪里安装pygame/usr/lib还是~/.local/lib



去年我在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下安装它。因此,这个问题与建议的重复问题不同。

首先,python -m pip uninstall pip是用来卸载pip的,而不是pygame,所以不想这么做。

当使用sudo调用时,pip将在/usr/lib上安装系统范围的库,以便所有用户都可以访问这些库。

当在没有sudo和/或带有--user标志的情况下调用时,它们仅为用户安装在主目录中。无论哪种情况,pip都会报告库已安装,无需重新安装

您可以使用以下方法来验证Python是否同时查看这两个路径以查找可用的库。

import sys
print(sys.path)

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

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

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

相关内容

  • 没有找到相关文章

最新更新