我想开发一些Python3.6的软件。问题是该软件将在数百个独特配置的构建环境中运行,这些环境可能安装也可能没有安装 python,并且无法访问互联网或 pypi。该机器是 Windows 和 Suse 的混合体。重要的是不要弄乱构建环境,因此我想将我的软件打包到一个具有所有依赖项的独立 python 环境中。
我发现很难找到符合我的标准的解决方案。
我遇到过 python 虚拟环境,但它们没有解释器,并且并不是真正打算复制的。
stackoverflow上的另一个人推荐PEX,这个看起来很完美,但似乎与Windows不兼容。
我还考虑过使用 Cython 将软件制作为静态链接的二进制文件。但据我所知,这仍然需要安装正确的 python,并且必须使用纯 Python。
最佳答案
https://pyoxidizer.readthedocs.io/en/latest/comparisons.html对该领域的各种解决方案进行了比较。看起来,如果您需要一个不需要预先配置目标系统的跨平台解决方案(例如预安装特定版本的 python),您的选择是 PyInstaller、PyOxidizer 和 Docker。
PyInstaller 更加成熟,而 PyOxidizer 声称启动速度更快。
如果您有复杂的依赖关系,我希望 Docker 的问题最少。它必须预安装在目标系统上,但构建环境可能已经安装了它。显然它会带来更多的开销。
关于python - 创建跨平台自包含 python 环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57451076/