pip和conda

目录

  • 1 使用 Conda?你可能不需要 Docker
    • 1.1 Docker 在开发环境中的应用
    • 1.2 Python 和 Conda:跨平台逻辑,跨平台依赖
    • 1.3 Conda 作为生产环境中 Docker 的替代方案
    • 1.4 避免使用 Docker 的一些限制
  • 2 Pip vs Conda:深入比较 Python 的两种包管理系统
    • 2.1 起点:哪种依赖?
      • 2.1.1 Pip:仅限 Python 库
      • 2.1.2 Conda:任何依赖都可以是 Conda 包(几乎)
      • 2.1.3 为什么 Conda 打包一切
    • 2.2 超越纯 Python:打包编译扩展
      • 2.2.1 解决方案 #1:自己编译
      • 2.2.2 解决方案 #2:Pip wheel
      • 2.2.3 解决方案 #3:Conda 包
    • 2.3 总结:pip vs Conda
    • 2.4 PyPI vs. Conda-Forge
      • 2.4.1 PyPI
      • 2.4.2 Conda-Forge
    • 2.5 在 Conda 中处理仅限 PyPI 的包
      • 2.5.1 在 Conda 环境中安装 pip 包
      • 2.5.2 自己为 Conda-Forge 打包
    • 2.6 总结:PyPI vs. Conda-Forge
    • 2.7 Pip 和 Conda 的附加工具
    • 2.8 你应该使用哪一个?

1 使用 Conda?你可能不需要 Docker

Docker 打包很有用,但要做好并不容易。即使将讨论范围限制在 Python 应用程序的生产使用上,需要涵盖的细节也非常多。

因此,虽然 Docker 通常足够有用,值得付出这些努力,但在某些情况下,你可能完全不用 Docker 会更好。具体来说,Conda 提供了 Docker 的一些优点。虽然 Conda 本身肯定也有问题,但单独使用 Conda 比在 Docker 上使用 Conda 组合起来要做的工作更少。

1.1 Docker 在开发环境中的应用

当你在本地进行软件开发时,Docker 有很多优点。

首先,你可能需要运行额外的服务,如 PostgreSQL;Docker,尤其是 Docker Compose,让这变得容易得多。Conda 在这方面并没有太大帮助,所以如果这是一项需求,Docker 很可能是正确的解决方案。

其次,可能会有开发者使用多种操作系统,这会带来一些困难:

  • 每个开发者的运行时环境会根据他们的操作系统而有所不同。通过在 Docker 上运行,你可以在相同的操作系统上一致地运行应用程序,无论你的镜像基于哪种 Linux 变体。
  • 在多个操作系统上一致地安装不同的工具可能很困难。你可能需要一些可用的实用工具:gitblackflake8,也许还有一个编译器。在 Linux 上你可能使用 apt

你可能感兴趣的:(pip,conda)