通过PyPI vs distro包管理器安装Numpy

时间:2015-06-12 07:37:50

标签: python ubuntu numpy scipy

这可能是一个微不足道的问题,甚至可能是重复的。

从PyPI安装的numpy / scipy与从分发的安装库安装的numpy / scipy有什么区别,比如Ubuntu使用apt-get?我认为我有一个模糊的想法 - 因为从PyPI安装需要很多其他工具,比如gcc,gfortran才能构建。我猜一个发行版的numpy包附带所有这些工具?不确定这是不是正确的图片。

如果是这样,根据我指向的python使用PyPI,我可以为特定版本的python安装numpy和scipy。使用apt-get,你可以为特定版本的python安装numpy和scipy吗?包管理器apt-get是否使用我指向的python版本?

2 个答案:

答案 0 :(得分:2)

主要区别在于,在pip中你总是有一个新版本 ubuntu存储库你总是有一个过时的python包。

是的,您可以安装例如python-numpy或python3-numpy,这将下载所有依赖项 - > http://packages.ubuntu.com/precise/python-numpy。 与PyPI相同,您可以使用pip / pip3来安装所需的软件包,但这可能更“棘手”,因为有时您必须手动找到依赖项。和ipython-notebook一样,当你从apt-get安装时,一切都会被下载,你不关心依赖,但是当你想要一个新版本并从pip下载时,你还必须安装tornado,jsonscheme,pyzqt使用pip手动。

使用pip / apt-get你可以为不同的python版本安装numpy / scikit。 (在ubuntu默认版本的python是2.7所以当你为python3安装sth时你必须添加3;)) apt-get install python-numpy / pip install numpy 要么 apt-get install python3-numpy / pip3 install numpy 与scikit相同:)

答案 1 :(得分:2)

大多数Linux发行版都有一个包管理器,用于安装预编译的二进制包。在numpy / scipy的情况下,他们将使用预编译的C / Fortran扩展来安装Python源代码。安装不需要C / Fortran编译器。

另一方面,PyPI是Python的包管理器,它大致是python setup.py install命令的包装器。它将特别从源代码编译必要的C / Fortran扩展。因此,它需要gccgfortran编译器出现在系统上。这需要更长的时间(numpy约15分钟),但其优势在于可以使用当前CPU架构的编译标志进行优化,因此速度稍快(实际上这在实践中并不重要)。

相关问题