学习Conda

210 阅读2分钟
  1. Conda 是一个包管理器; Anaconda 是一个ditribution。尽管 Conda 与 Anaconda 打包在一起,但两者是有着不同目标的不同实体。

  2. Conda 是一个通用的软件包管理系统,用于从任何语言构建和管理任何类型的软件。因此,它也可以很好地与 Python 包一起工作。

  3. Conda 和 pip 有不同的用途,它们只在一小部分任务中直接竞争: 即在独立的环境中安装 Python 包。pip可以允许你在任何环境中安装python包,而conda允许你在conda环境中安装任何语言包(包括c语言或者python)。

  4. 您实际上可以在 viralenv 中安装(一些) Conda 包,但是更好的方法是使用 Conda 自己的环境管理器;Viralenv/venv 是允许用户创建使用 pip 的独立 Python 环境的实用程序。Conda 拥有自己的内置环境管理器,让 Conda 和 pip 无缝地协同工作。

  5. Conda是开源的

  6. pip 在任何环境中安装 Python 包; Conda 在 Conda 环境中安装任何包。

  7. 如果您已经安装了现有的系统 Python,并且希望在其中或在其上安装软件包,那么可以使用 pip + viralenv。例如,您可能使用 apt 或其他系统包管理器来安装 Python,以及一些链接到系统工具的包,这些工具(目前)还不容易通过 conda 或 pip 安装。Pip + viralenv 将允许您在现有发行版之上安装新的 Python 包和构建环境,并且您应该能够依赖您的系统包管理器来处理任何难以安装的依赖项。

  8. 如果您希望灵活地管理多语言软件堆栈,并且不介意使用独立的环境,那么可以使用 conda。Conda 的多语言依赖管理和跨平台的二进制安装可以在这种情况下完成 pip 无法完成的任务。一个巨大的好处是,对于大多数软件包,其结果将立即与多个操作系统兼容。

  9. 如果您希望在一个独立的环境中安装 Python 包,pip + viralenv 和 conda + conda-env 大多是可互换的。这是两个工具以各自方式发光的重叠区域。也就是说,在这种情况下,我倾向于选择 Conda: Conda 对多个并行 Python 环境的统一、跨平台、全栈管理,以及强大的依赖管理,已经证明在我的研究、教学和软件开发工作中是一个令人难以置信的节省时间的方法。此外,我发现我的需求和同事的需求更多地偏离了 conda 的强项(管理非 Python 工具和依赖性) ,而不是 pip 的强项(与环境无关的 Python 包管理)。

参考资料

jakevdp.github.io/blog/2016/0… nooverfit.com/wp/%E5%85%B…