【问题标题】:Why do we need Anaconda when we have pip? [closed]为什么我们有 pip 时还需要 Anaconda? [关闭]
【发布时间】:2014-07-04 14:07:12
【问题描述】:

Anaconda 在科学计算中变得非常流行,因为它捆绑了超过 125 个最广泛使用的 Python 数据分析库。我的问题是,既然我们已经有了 pip(这是一个非常广泛使用的 Python 包管理器),为什么还需要 Anaconda?难道我们不能为 125 多个库中的每一个都简单地键入 pip install 并且它们都可以很好地协同工作吗?或者他们会不会很好地协同工作,这意味着 Anaconda 通过解决在试图让 125 多个库进行良好交互时出现的问题为我们所有人提供了一个很大的帮助?

【问题讨论】:

  • “我们”不需要 Anaconda。但是,如果您在 Windows 上,并且没有编译器,Anaconda 可能是众多解决方案之一
  • 我猜pip install 125+ 包太麻烦你自己尝试一下?让一个社区使用相同版本的库比每个人都只拥有安装当天发布的每个库的最新版本更利于协作。
  • 在Windows上安装一些包其实有点麻烦。例如,如果我想在 Windows 上通过 pip 安装 numpy,我需要一个 C++ 编译器、一个 fortran 编译器等。如果我只是执行“pip install numpy”,它实际上不会在 Windows 上默认工作,需要我进行额外的设置和安装。没有通用的“windows”包管理器,所以现在我需要寻找我需要安装的东西,清理我的路径和配置文件等。很多更“重”的库也是如此。
  • 因为它简化了安装,因此也简化了分发。它大大降低了科学计算的入门水平。尤其是在 Windows 上。
  • 我不认为这是基于意见的,有客观原因,正如我所暴露的那样。另一件事是 Anaconda vs Canopy vs Python(x,y)...

标签: python pip anaconda


【解决方案1】:

三个根本原因:

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

还有一个补充:

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

【讨论】:

    【解决方案2】:

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

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

    这是针对我自己的库的,但我认为很多其他包都面临类似的问题。

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

    【讨论】:

      猜你喜欢
      • 2020-05-13
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      相关资源
      最近更新 更多