相当于uber-jar的Python

我正在寻找相当于python世界中的超级jar子。

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

    python package.ext

你可以假定这个包是纯Python(没有本地代码)。 有什么满足这些要求?

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

  • .whl软件包需要安装pip
  • 我不知道如何创build一个包含所有包依赖关系的.egg
  • 这个PEP: http : //legacy.python.org/dev/peps/pep-0441显示python支持运行.zip文件,但AFAICT,创build这样一个zip的最佳工具是pex( https://github.com / pantsbuild / pex ),我认为它不支持Windows

一个Python替代Java的“超级罐子”(用阴影插件制作)可以简单地制作整个虚拟环境的tarball,并将其用于您的部署过程。

这种方法的问题(就像使用JAR一样)是当其中一个包需要本地库的时候。 但是,这是一个不同的故事,我会说…