如何确定哪些 python 模块是用“pip”安装的,哪些是用“apt”安装的?

如何确定哪些 python 模块是用“pip”安装的,哪些是用“apt”安装的?

我试图解决我的问题ReText(使用 在整个系统内安装pip3
我的两个 16.04 LTS 系统有不同的输出pip3 list

我知道pip3 list显示所有软件包(使用pip3apt/安装apt-get)。

我也知道

  • APT 安装东西到/usr/lib/python3/dist-packages
  • pip3将系统范围的内容安装到/usr/local/lib/python3.5/dist-packages

如何确定安装了哪些 python 模块pip以及安装了哪些python 模块apt

答案1

并非一成不变,但从询问 Ubuntu 问答

正如 @Radu Rădeanu 在这个答案中指出的那样,软件包的名称通常也会有所不同。Canonical 通常将 Python 2 软件包命名为 python-,将 Python 3 软件包命名为 python3-。而对于 pip,我们通常只需要同时使用 Python 2 和 Python3 软件包。

一般来说:

  • 如果包名称以 开头python-python3-由 进行安装apt
  • 否则,软件包由pip

答案2

我刚刚遇到了同样的问题。我想到的第一个强力方法是获取两个列表,然后以编程方式获取差异。伪代码如下:

pkg_all = $(pip3 list)
pkg_apt = $(dpkg -l | grep python3)
pkg_pip = substract(pkg_all, pkg_apt)

把 组合起来应该不难subtract。将一个给定函数应用于 的所有元素pkg_all,将另一个函数应用于 的所有元素pkg_apt,这样两个列表就变成了一个共同的符号。然后对两个列表进行排序, 和diff

这只是增加了可接受的答案。

有关的

  1. 如何检测和删除通过 pip 安装的 Python 包?

相关内容