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

Dam*_*ing 15 python pip anaconda

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

Dav*_*dmh 9

三个根本原因:

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

补充:

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


use*_*424 2

问题在于,许多这些科学包都依赖于许多外部 C 库,并且彼此之间存在 pip 无法处理的依赖关系。

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

那是针对我自己的库的,但我认为许多其他包也面临类似的问题。

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