【问题标题】:Python equivalent of uber-jar相当于 uber-jar 的 Python
【发布时间】:2016-06-22 20:06:03
【问题描述】:

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

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

    python package.ext

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

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

【问题讨论】:

  • 我认为简短的回答是“否”。稍长一点的非答案是“为你找到这个对 SO 来说是题外话”
  • pex 显然不支持 windows,自 2016 年以来这方面似乎没有发生任何事情。github.com/pantsbuild/pex/issues/230

标签: python windows packaging python-wheel uberjar


【解决方案1】:

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

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

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

【讨论】:

  • pypi.org/project/pyzzer 可以用于此。不像 pex 那样简洁,它引入依赖项,添加自己的前奏,可以解压缩到临时目录等。但这是一个开始,与 pex 不同,pyzzer 确实支持 Windows。
  • pyzzer 的最后一个版本是在 2013 年——仅供参考
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-13
  • 2019-07-16
  • 1970-01-01
  • 2016-05-08
  • 2011-06-05
  • 2010-10-29
相关资源
最近更新 更多