Python相当于uber-jar

Mic*_*elt 7 python windows packaging uberjar python-wheel

我正在寻找蟒蛇世界中相当于超级罐的东西.

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

    python package.ext

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

我知道以下选项,每个选项都有不足之处:

Dej*_*kic 2

Java 的“uber-jar”(例如,使用阴影插件制作)的一种 Python 替代方案可以是简单地制作整个虚拟环境的 tarball,并将其用于部署过程。

这种方法的问题(与 JAR 一样!)是当其中一个包需要本机库时。但我想说的是另一个故事......

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