Python 停止pip安装已使用apt get安装的依赖项

Python 停止pip安装已使用apt get安装的依赖项,python,ubuntu,debian,pip,apt-get,Python,Ubuntu,Debian,Pip,Apt Get,如何确保使用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应该做的是

如何确保使用
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包,对吗

这里的关键是防止多个包管理器安装到同一目录中

一种策略是创建一个能识别其父解释器包的
virtualenv
。这可以通过使用
--system site packages
选项来完成

virtualenv -p /usr/bin/python --system-site-packages py27
source py27/bin/activate
默认情况下,此环境不会为空。您可能需要比较
/usr/bin/python-mpip list
python-mpip list

也见此



对于许多(科学)软件包,pypi上也提供了轮子。轮子已经是二进制的,因此不需要进一步编译。

Mhm,不需要。你应该做的是停止混合
pip
apt
:)。您不能期望包管理器知道其他包管理器。相反,你应该注意不要使用两个不同的包管理器试图安装到同一个前缀中。不要混合使用
pip
apt
的Ubuntu安装。即使
pip
安装在同一目录下,Ubuntu也不会知道该软件包,您可以使用
apt
覆盖它。我同意您的意见,但这是不可避免的,有时apt get上的软件包是预编译的,所以我想在安装时使用这些软件包和一些pip软件包,而不是apt get宇宙中的软件包,所以我需要两者兼而有之。也许我应该问的是,我怎样才能让pip安装到apt-get所在的位置?也许还有其他策略可以解决这个问题:许多需要编译的python包都可以作为二进制程序轮使用。您可以选择使用pip安装这些,而不是自己编译。另一个策略是创建一个本地的
virtualenv
,它知道其父级的软件包。我已经使用了virtualenv。你是说你可以创建一个通过
apt get
安装的软件包?另外,我很想听到一个建议/展示双轮的答案?