为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁花如伊 2023-08-08 15:58:55
app.py我有一个包含和文件的 python 项目source.py。项目还有其他配置和日志文件。我已经转换app.py为app.exe使用pyinstallerpyinstaller app.py这样就创建了一个dist目录。source.py我已将配置和日志文件复制粘贴到dist目录中。我还想为此创建一个安装程序,将其安装在另一台计算机上。source.py我无法按原样共享该文件,而不是.py我使用过的source.pyc。我现在已经使用了 inno 编译器并创建了一个安装文件。根据我的理解,pyinstaller会自动绑定python解释器,因此我们不需要在任何其他机器上安装python。我只是安装了 exe,它就开始正常工作了。在我的项目中,我有一个调用source.pyc文件的功能,如下所示:exec(os.system("source.pyc install"))这在我的开发机器上运行良好,但在其他机器上,它给了我bad magic error。根据在线论坛,当我们尝试使用pyc不同的 python 版本解释器运行文件时,通常会发生这种情况,但在我的情况下,我使用相同的 pyinstaller 解释器。那怎么会出现这个错误呢。除了使用 pyinstaller 编译 app.py 之外,还有其他方法吗?我怎样才能消除这个错误。谢谢
查看完整描述

1 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

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

您也可以使用 PyInstaller 编译其他文件(即source.py),然后将编译后的 EXE 文件移动到与app.exe. 在这种情况下,您将能够import os; os.system("source.exe")从主程序运行您的命令。如果您的其他编译脚本需要未在app.exe编译中使用/包含的模块/库,则在移动已编译的 时source.exe,您还需要将捆绑的库移动到该app.exe目录。


查看完整回答
反对 回复 2023-08-08
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信