如何删除 Pyinstaller 中的 Bad magic number 错误

How to remove Bad magic number error in Pyinstaller

我有一个 python 项目,其中包含 app.pysource.py 文件。项目还有其他用于配置和日志的文件。我已经使用 pyinstaller

app.py 转换为 app.exe
pyinstaller app.py

这已经创建了一个 dist 目录。我已将 source.py、配置和日志文件复制粘贴到 dist 目录中。

我也想为此创建一个安装程序,它将安装在另一台机器上。我无法按原样共享 source.py 文件,而不是我使用 source.pyc.py。我现在已经使用了 inno 编译器并创建了一个安装文件。

据我了解,pyinstaller 会自动绑定 python 解释器,因此我们不需要在任何其他机器上安装 python。我只是安装了 exe,它开始工作正常。

在我的项目中,我有一个调用 source.pyc 文件的功能,如下所示:

exec(os.system("source.pyc install"))

这在我的开发机器上运行良好,但在其他机器上,它给了我 bad magic error

根据在线论坛,当我们尝试使用不同的 python 版本解释器 运行 pyc 文件时,通常会发生这种情况,但就我而言,我使用的是相同的 pyinstaller 解释器。那怎么会出现这个错误呢

除了 app.py 使用 pyinstaller 之外,是否还有其他编译附加文件的方法。我怎样才能消除这个错误。谢谢

PyInstaller 不会将 Python 解释器与 EXE 文件捆绑或绑定。 EXE 文件是一个编译 二进制文件,在编译时不需要解释器。 PYC 文件仍然需要解释器。

您也可以使用 PyInstaller 编译其他文件(即 source.py),然后将编译后的 EXE 文件移动到与 app.exe 相同的目录。在那种情况下,您将能够从主程序 运行 您的 import os; os.system("source.exe") 命令。如果您的其他编译脚本在 app.exe 编译中需要 modules/libraries 而不是 used/included,那么在移动已编译的 source.exe 时,您需要将捆绑的库移动到 [=11] =] 目录。