所以我希望打包一个相当复杂的Python应用程序,需要科学库。这个问题有点类似于 the stackoverflow pip vs conda 讨论,但它没有详细介绍 Linux 轮子的二进制打包自 2016 年以来的差异。我已经看到 pypi/cryptography 使用了 Manylinux 并分发二进制文件通过 pypi 轮子。另一个软件包 mpi4py 仅发布 conda 的二进制软件包,只是因为困难。甚至可以说二进制轮子不适合这项任务。
通过轮子进行共享库打包与 conda 相比是什么样子?截至 2018 年,通过轮子打包共享库是否值得?
我的包裹需要
我的静态二进制文件大约有 100Mb,所以它确实需要很多共享库。我还指出,即使对于我自己来说,安装也是一个巨大的痛苦......我无法想象对于尝试自己安装它的人来说会是什么样子。到目前为止,我已经有了一个可以工作的 docker 容器。
(这是我第一次在这个论坛回答)
conda 和 pypi 的讨论确实很老了。在我看来,争论是否使用 conda 还是 pypi 并不重要,因为它必须适合您的工作流程。
我是 pip 和虚拟环境的粉丝。这有几个原因: a) 易于设置 b) 这是我第一天的“导师”告诉我要使用的
使用 docker 容器是明智的。
我(个人)会做什么:
为什么我在这种情况下只使用 docker 主要是因为你提到即使安装起来也很痛苦。
如果你希望人们将你的“相当复杂的Python应用程序”与科学库一起使用,我会考虑可用性高于一切。 Docker 是成功的保证,pypi 需要特定的环境afaik。
总长:
使用码头工人。