Python 与 Java 字节码

问题描述

我希望我的 Python GUI 应用程序可以在所有三个操作系统上运行,而无需在每个平台上重新编译。由 pyinstaller(由或类似实用程序)平台创建的 python 可执行文件是否像 Java 的字节码一样独立? Java 的字节码使用 JRE 在 Windows、Mac 和 Linux 上运行。

解决方法

就在documentation

PyInstaller 的输出特定于活动的操作系统 和 Python 的活动版本。这意味着要准备一个 分布于:

  • 不同的操作系统
  • 不同版本的 Python
  • 32 位或 64 位操作系统

你在那个 OS 上运行 PyInstaller,在那个版本的 Python 下。这 执行 PyInstaller 的 Python 解释器是包的一部分, 它特定于操作系统和字长。

换句话说:不,它不可移植。您需要针对每个平台/架构进行编译。

正如@juanpa.arrivillaga 在评论中所述,这与 python 通常执行的字节码无关。那可移植的。这里的问题是 PyInstaller 捆绑了一个特定于操作系统和体系结构的 Python 解释器(也就是说,这与您通常无法在 MacO 上运行 Windows 可执行文件的原因相同)。