为什么我们有点子时需要Anaconda?

时间:2014-05-15 22:41:10

标签: python pip anaconda

Anaconda已经在科学计算中非常流行,因为它将超过125种最广泛使用的Python数据分析库捆绑在一起。我的问题是,既然我们已经有了pip(这是一个非常广泛使用的Python包管理器),为什么我们需要Anaconda呢?难道我们都不能为125个以上的图书馆中的每个图书馆输入pip install而且他们都能很好地合作吗?或者他们不能很好地合作,这意味着Anaconda通过整理出来试图让125个以上的图书馆进行良好互动时出现的问题,帮助了我们所有人?

2 个答案:

答案 0 :(得分:8)

三个基本原因:

  • 这些库中的大多数需要链接到系统安装的库(例如,用于PyTables的HDF5或用于Numpy的ATLAS),用户可能会或可能不会知道。请注意,Matplotlib需要一堆不同的图形库,如果它们丢失,它将在某些后端崩溃。
  • pip编译库(带轮子你可以避免这一步)。这需要C编译器(在Windows中很难)和FORTRAN编译器(在Mac和Windows中很难)。像Scipy这样的大型图书馆也需要时间。
  • Anaconda的metapackage anaconda是Continuum确保它们很好地协同工作的最小库。在理想的世界中,我们应该始终使用所有内容的最后和最完善版本,但这可能会导致不兼容。

补充:

  • 使用conda很容易创建一组包以供分发。因此,您可以轻松地共享您的包,包括其所有依赖项。

答案 1 :(得分:2)

问题在于,很多这些科学软件包都依赖于许多外部C库,而pip无法处理这些库。

例如,请参阅我的问题:How to Bootstrap numpy installation in setup.py

那是我自己的图书馆,但我认为很多其他软件包都面临着类似的问题。

此外,编译库需要很长时间。只需在我的机器上输入pip install numpy就需要一分钟。这与人们使用预编译的二进制文件apt-getyum而不是从源代码编译程序的原因相同。