使用 ManyLinux + Auditwheel 进行打包 pip 轮子与 Conda

问题描述 投票:0回答:1

描述

所以我希望打包一个相当复杂的Python应用程序,需要科学库。这个问题有点类似于 the stackoverflow pip vs conda 讨论,但它没有详细介绍 Linux 轮子的二进制打包自 2016 年以来的差异。我已经看到 pypi/cryptography 使用了 Manylinux 并分发二进制文件通过 pypi 轮子。另一个软件包 mpi4py 仅发布 conda 的二进制软件包,只是因为困难。甚至可以说二进制轮子不适合这项任务。

问题

通过轮子进行共享库打包与 conda 相比是什么样子?截至 2018 年,通过轮子打包共享库是否值得?

要求

我的包裹需要

  • 开放布拉斯
  • fftw3
  • openmpi

我的静态二进制文件大约有 100Mb,所以它确实需要很多共享库。我还指出,即使对于我自己来说,安装也是一个巨大的痛苦......我无法想象对于尝试自己安装它的人来说会是什么样子。到目前为止,我已经有了一个可以工作的 docker 容器。

python conda python-wheel conda-build python-manylinux
1个回答
0
投票

(这是我第一次在这个论坛回答)

conda 和 pypi 的讨论确实很老了。在我看来,争论是否使用 conda 还是 pypi 并不重要,因为它必须适合您的工作流程。

我是 pip 和虚拟环境的粉丝。这有几个原因: a) 易于设置 b) 这是我第一天的“导师”告诉我要使用的

使用 docker 容器是明智的。

我(个人)会做什么:

  • 将整个应用程序 Docker 化
  • 编写有关如何使用它的简短文档
  • 忘记康达等

为什么我在这种情况下只使用 docker 主要是因为你提到即使安装起来也很痛苦。

如果你希望人们将你的“相当复杂的Python应用程序”与科学库一起使用,我会考虑可用性高于一切。 Docker 是成功的保证,pypi 需要特定的环境afaik。

总长:

使用码头工人。

© www.soinside.com 2019 - 2024. All rights reserved.