10

我正在寻找与 python 世界中的 uber-jar 相当的东西。

  • 我需要将 python 包分发到所有三个主要平台(Windows、Mac、Linux)。
  • 它必须与其所有依赖项捆绑在一起,因为目标平台可能缺乏互联网。
  • 它必须是一个跨平台的发行版,所以我不必为多个目标构建。也就是说,我应该能够在这样的所有平台上运行它:

    python package.ext

您可以假设该包是纯 python(没有本机代码)。 有什么东西可以满足这些要求吗?

我知道以下选项,每个选项都有缺陷:

4

1 回答 1

1

Java 的“uber-jar”(例如,使用 shade 插件)的一种 Python 替代方案可能是简单地制作整个虚拟环境的 tarball,并在部署过程中使用它。

这种方法的问题(与 JAR 一样!)是其中一个包需要本机库。但这是一个不同的故事,我会说......

另一种(现代)替代方法是简单地创建一个 Docker 映像。

于 2016-10-21T12:39:18.657 回答