我使用了最新版本的 pyinstaller,可以选择--onefile
创建我的 python 脚本的一个独立文件。在我的 Mac 上,如果我在终端(bash shell)中打开文件,它工作得很好,但在 Linux bash 中,我收到以下错误
bash: ./myprog: cannot execute binary file
我在这里缺少什么吗?
我使用了最新版本的 pyinstaller,可以选择--onefile
创建我的 python 脚本的一个独立文件。在我的 Mac 上,如果我在终端(bash shell)中打开文件,它工作得很好,但在 Linux bash 中,我收到以下错误
bash: ./myprog: cannot execute binary file
我在这里缺少什么吗?
pyinstaller
创建一个可执行文件,该可执行文件将在运行它的机器上运行。因此,如果您在 Windows 上运行 pyinstaller,它会为 Windows 创建一个可执行文件。Mac、Linux 等也一样,所以我会尝试在你的 Linux 机器上运行 pyinstaller 来为该环境生成一个工作可执行文件。Mac 可执行文件不是 Linux 可执行文件。
这是因为(据我了解)底层 Python 包括某些特定于平台的实现。例如,该os
模块有一堆有条件的、依赖于平台的导入,它们将被捆绑到可执行文件中。由于它只能访问pyinstaller
正在运行的平台上可用的任何二进制文件,因此它无法为其他平台生成版本。
Linux 检查可执行文件的幻数,Linux 可执行文件的幻数以“DLE elf”开头
执行“od -c YUPUR_FILE”并查看结果