相当于 uber-jar 的 Python

标签 python windows packaging python-wheel uberjar

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

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

    python package.ext

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

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

最佳答案

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

这种方法(对于 JAR 也是如此!)的问题在于其中一个包需要本地库。但我会说这是一个不同的故事......

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

关于相当于 uber-jar 的 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37977289/

相关文章:

windows - 启动 IE 的自定义协议(protocol)处理程序 - 不一致的结果

java - Maven 将项目打包为具有依赖项的可执行 JAR

ruby - 访问打包到 Ruby Gem 中的文件

maven - 如何在Maven EAR构建中替换RAR内的JAR内的文件

python - 是否可以在 Python 中加速这个循环?

python - 创建随机数据库并将其从 numpy 转换为 pandas

python - 为什么 Python 会引发 TypeError 而不是 SyntaxError?

python - Docker 无法构建,因为找不到需求的匹配分布

windows - 如何测量 TreeView 项目中文本的可用宽度?

windows - 安装后, `docker info`无法正常工作