pip应该在哪里安装pygame? / usr / lib或〜/ .local / lib?

时间:2019-02-13 07:53:52

标签: python pip pygame

去年,我在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安装”无关。通常,在apt install中,如果我们省略sudo,它将要求root特权并且不会安装它。但是pip将它安装在〜/ .local下。因此,该问题与建议的重复问题不同。

1 个答案:

答案 0 :(得分:0)

首先,python -m pip uninstall pip是要卸载pip,而不是pygame,因此您不想想要这样做。

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

在没有sudo 和/或带有--user标志的情况下被调用时,仅在您的主目录上为您的用户安装它们。无论哪种情况,pip都将库报告为已安装,而无需重新安装。查看三元组以及here

提供的链接

您可以使用以下代码来验证Python是否在这两个路径中都能找到可用的库。

import sys
print(sys.path)

要解决您的问题,这两个位置都很好,这只是一个优先事项。

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

我认为,最好是在本地收集用户依赖项,以便每个用户都可以自由安装/删除/更新其要求的库和模块,最好是在其Virtual Environment内部。