3

我使用了最新版本的 pyinstaller,可以选择--onefile创建我的 python 脚本的一个独立文件。在我的 Mac 上,如果我在终端(bash shell)中打开文件,它工作得很好,但在 Linux bash 中,我收到以下错误

bash: ./myprog: cannot execute binary file

我在这里缺少什么吗?

4

2 回答 2

6

pyinstaller创建一个可执行文件,该可执行文件将在运行它的机器上运行。因此,如果您在 Windows 上运行 pyinstaller,它会为 Windows 创建一个可执行文件。Mac、Linux 等也一样,所以我会尝试在你的 Linux 机器上运行 pyinstaller 来为该环境生成一个工作可执行文件。Mac 可执行文件不是 Linux 可执行文件。

这是因为(据我了解)底层 Python 包括某些特定于平台的实现。例如,该os模块有一堆有条件的、依赖于平台的导入,它们将被捆绑到可执行文件中。由于它只能访问pyinstaller正在运行的平台上可用的任何二进制文件,因此它无法为其他平台生成版本。

于 2013-04-02T16:37:14.830 回答
0

Linux 检查可执行文件的幻数,Linux 可执行文件的幻数以“DLE elf”开头

执行“od -c YUPUR_FILE”并查看结果

于 2013-04-03T03:36:02.147 回答