创建跨平台自包含 python 环境?

Creating cross platform self contained python environments?

我想开发一些 Python3.6 软件。问题是该软件会 运行 在数百个可能安装或未安装 python 且无法访问互联网或 pypi 的独特配置的构建环境中。该机器是 windows 和 Suse 的混合体。重要的是不要弄乱构建环境,所以我想将我的软件打包到一个包含所有依赖项的隔离 python 环境中。

我发现很难找到符合我标准的解决方案。

我遇到过 python 虚拟环境,但它们没有解释器,也不是真的要复制。

stack overflow 上的另一个人推荐 PEX,这看起来很完美但似乎与 Windows 不兼容。

我也考虑过使用 Cython 将软件制作成静态链接的二进制文件。但据我所知,这仍然需要安装正确的 python 并且必须使用纯 Python.

https://pyoxidizer.readthedocs.io/en/latest/comparisons.html在这个space有各种方案的比较。看起来,如果您需要一个不需要预先配置目标系统的跨平台解决方案(例如,预安装特定版本的 python),您的选择是 PyInstaller、PyOxidizer 和 Docker.

PyInstaller 更成熟,而 PyOxidizer 声称启动速度更快。

如果您有复杂的依赖关系,我希望 Docker 问题最少。它必须预先安装在目标系统上,但构建环境可能已经安装了它。显然它带来了更多的开销。