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

MrK*_*tts 5 python ubuntu debian pip apt-get

如何确保使用pip安装的软件包不安装已安装的依赖项apt-get

例如,在Ubuntu上,您可以使用Numpy安装包apt-get install python-numpy.哪个安装到:

usr/local/lib/python2.7/dist-packages 
Run Code Online (Sandbox Code Playgroud)

我注意到,当我安装一个需要使用numpy的软件包时,它不再跳过numpy依赖pip,pip install scipy而是再次安装到另一个位置.

/usr/lib/python2.7/dist-packages
Run Code Online (Sandbox Code Playgroud)

pip应该做的是跳过全局安装的任何python包,对吧?

cel*_*cel 4

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

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

virtualenv -p /usr/bin/python --system-site-packages py27
source py27/bin/activate
Run Code Online (Sandbox Code Playgroud)

默认情况下,该环境不会为空。您可能想要比较/usr/bin/python -m pip listpython -m pip list

另请参阅这个问题


对于许多(科学)包,pypi 上也有可用的轮子。Wheels 已经是二进制的,因此不需要进一步编译。