在特定的Python版本上安装软件包

时间:2014-10-13 17:48:52

标签: python pip ubuntu-14.04

我目前在我的Ubuntu 14.04系统上安装了Python 3.3和3.4。当我使用pip3安装Python包时,例如numpy

sudo pip3 install numpy

它只在Python 3.4上安装它。我怎样才能在Python 3.3上安装它?

谢谢!

1 个答案:

答案 0 :(得分:2)

每个Python安装都有自己独立的站点包。

因此,如果要为两者安装,则必须安装两次。这样做的方法是使用pip3.3pip3.4而不是pip3。 (如果你没有pip3.3,你当然必须安装它。)


您可能想知道为什么每个Python安装都有自己独立的站点包。

部分原因是较新的Python版本通常具有新功能,并且允许安装程序根据您的Python版本安装不同的东西。这不是很常见,但是没有真正的方法让一个包发出信号表明它会为不同的版本做不同的事情,所以setuptools必须假设它们都会。

.pyc编译的字节码也可以在版本之间进行更改,即使模块没有做任何不同的事情。

但传统上,最大的问题是二进制C扩展模块。通常,针对一个libpython编译的模块将不适用于不同的Python版本。然而,在3.3+的情况下,这并不总是正确的 - 只使用“稳定”API的模块可以编译为3.3并且仍然可以在3.4中工作(当然假设相同的平台和构建设置)。 / p>


Python正在逐步发展以处理可以在安装之间共享的已编译模块(.pyc和.so),但它还没有。

如果您碰巧知道(或愿意测试)它们是兼容的,您可以随时设置额外的shared-site-packages目录,将3.3配置为安装到该目录,并配置3.3和3.4来看待它。然而,这通常比它的价值更多。