【发布时间】:2016-01-23 19:57:07
【问题描述】:
如何确保使用 pip 安装的软件包不会安装已使用 apt-get 安装的依赖项?
例如,在 Ubuntu 上,您可以使用 apt-get install python-numpy 安装包 Numpy。安装到:
usr/local/lib/python2.7/dist-packages
我注意到,当我使用 pip 安装需要 numpy 的软件包时,例如,pip install scipy 而不是跳过 numpy 依赖项,它会再次安装到不同的位置。
/usr/lib/python2.7/dist-packages
pip 应该做的是跳过全局安装的任何 python 包,对吗?
【问题讨论】:
-
嗯,没有。你应该做的是停止混合
pip和apt:)。您不能指望包管理器知道其他包管理器。相反,您应该注意不要使用尝试安装到相同前缀中的两个不同的包管理器。 -
不要混用
pip和apt的 Ubuntu 安装。即使pip安装在同一目录中,Ubuntu 也不会知道该软件包,您可以使用apt覆盖它。 -
我同意你的评论,但这无法避免,有时 apt-get 上的包是预编译的,所以我想将它们用于安装和一些 pip 包,而不是在 apt-get 宇宙中所以我需要两全其美。也许我应该问的是如何将 pip 安装到与 apt-get 相同的位置?
-
还有其他策略可以解决这个问题:许多需要编译的 python 包都可以作为二进制轮子使用。您可以选择使用 pip 安装这些,而不是自己编译。另一种策略是创建一个本地
virtualenv,它知道其父级的包。 -
我用过 virtualenv 你是说你可以创建一个知道
apt-get安装的包吗?另外,我很想听到建议/显示二进制轮子的答案?
标签: python ubuntu debian pip apt-get