停止 pip 安装已经使用 apt-get 安装的依赖项
Stop pip installing dependancies already installed using 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 应该做的是跳过全局安装的任何 python 包,对吗?
这里的关键是防止多个包管理器安装到同一个目录中。
一个策略是创建一个 virtualenv
知道其父解释器的包。这可以通过使用 --system-site-packages
选项来完成。
virtualenv -p /usr/bin/python --system-site-packages py27
source py27/bin/activate
这个环境默认不会是空的。您可能想要比较 /usr/bin/python -m pip list
和 python -m pip list
.
另请参阅此 question
对于许多(科学)包,pypi 上也有可用的轮子。 Wheels 已经是二进制的,因此不需要进一步编译。
如何确保使用 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 -m pip list
和 python -m pip list
.
另请参阅此 question
对于许多(科学)包,pypi 上也有可用的轮子。 Wheels 已经是二进制的,因此不需要进一步编译。