Python Pyinstaller缺少引导加载程序

Python Pyinstaller缺少引导加载程序,python,windows,pyinstaller,python-3.7,Python,Windows,Pyinstaller,Python 3.7,我在win10-64上新安装了Python37-32 所有的需求似乎都得到了满足,我的hello world python文件正在执行 if __name__ == '__main__' : print("hello world") 但是当我尝试使用pyinstaller时 pyinstaller hello.py 它以错误结束 5764 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully. 5764 INF

我在win10-64上新安装了Python37-32 所有的需求似乎都得到了满足,我的hello world python文件正在执行

if __name__ == '__main__' :
    print("hello world")
但是当我尝试使用pyinstaller时

pyinstaller hello.py
它以错误结束

5764 INFO: Building PKG (CArchive) PKG-00.pkg completed successfully.
5764 INFO: Bootloader c:\users\xxxxxxx\appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\bootloader\Windows-32bit\run_d.exe
5764 INFO: checking EXE
5764 INFO: Building EXE because EXE-00.toc is non existent
5779 INFO: Building EXE from EXE-00.toc

Fatal error: PyInstaller does not include a pre-compiled bootloader for your
platform. For more details and instructions how to build the bootloader see
<https://pyinstaller.readthedocs.io/en/stable/bootloader-building.html>
这是windows上的一个基本安装,我不需要手动重新编译任何引导加载程序,因为我已经习惯于pyinstaller使用较旧的python版本,而且从来没有遇到过问题。 我应该在哪里解决这个问题

编辑


该错误显示在python37-32中,但不显示在python37 64位中。首先,请确保运行的是Pyinstaller==3.5的最新版本。 pyinstaller的早期版本不支持python3.7

如果可以的话,可能是因为pyinstaller的安装不完整 手动检查pyinstaller安装是否存在引导加载程序文件。引导加载程序预编译的文件应该在python安装中

c:\users\xxxxxxx\appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\bootloader\Windows-32bit\run_d.exe
最后,我建议通过setup.py安装pyinstaller。当您运行setup.py时,它应该为您的机器构建引导加载程序

首先,确保您运行的是Pyinstaller==3.5的最新版本。 pyinstaller的早期版本不支持python3.7

如果可以的话,可能是因为pyinstaller的安装不完整 手动检查pyinstaller安装是否存在引导加载程序文件。引导加载程序预编译的文件应该在python安装中

c:\users\xxxxxxx\appdata\local\programs\python\python37-32\lib\site-packages\PyInstaller\bootloader\Windows-32bit\run_d.exe
最后,我建议通过setup.py安装pyinstaller。当您运行setup.py时,它应该为您的机器构建引导加载程序 从源代码处下载并安装,而不是使用pip

python setup.py install
然后,如果您的系统是64位的,则会构建64位引导加载程序,尽管python37-32需要32位引导加载程序。 在源cd引导加载程序中,运行python./waf all-target arch=32位,如前所述

然后将run.exe从build文件夹复制到pyinstaller 32位引导加载程序文件夹

已在pyinstaller github上打开了一个安装程序。

从源代码处下载并安装,而不是使用pip

python setup.py install
然后,如果您的系统是64位的,则会构建64位引导加载程序,尽管python37-32需要32位引导加载程序。 在源cd引导加载程序中,运行python./waf all-target arch=32位,如前所述

然后将run.exe从build文件夹复制到pyinstaller 32位引导加载程序文件夹


已经在pyinstaller github上打开了一个安装程序。

您是如何安装pyinstaller的?@RvdK python-m pip install pyinstaller我也尝试了开发版本。同样的效果你是如何安装pyinstaller的?@RvdK python-m pip install pyinstaller我也在开发版本中尝试过。同样有效的Python37-32\Lib\site packages\PyInstaller\bootloader\Windows-64位包含run.exe run\u d.exe runw.exe runw\u d.exe和Python37-32\Lib\site packages\PyInstaller\bootloader\Windows-32位仅包含runw\u d.exe,因此我假设booltoader在安装期间不是由pip构建的,我不能确定,因为我不熟悉引导加载程序构建的可执行文件的确切名称。但我认为值得研究PyInstallerIt的较低版本,因为它似乎是使用pip安装的,或者源代码给出了相同的结果。在64位机器上,即使使用32位python版本,也会生成64位引导加载程序。不,我有一个解释,但问题没有解决不确定它是否有用,但当您通过源代码安装它时,您可以手动删除已编译的引导加载程序文件。然后python将为您构建它们。当它检测到64位windows时,如果我的理解正确,它不会构建32位引导加载程序Python37-32\Lib\site packages\PyInstaller\bootloader\windows-64位只包含run.exe run\u d.exe runw.exe runw\u d.exe和Python37-32\Lib\site packages\PyInstaller\bootloader\windows-32位runw\u d.exe,所以我认为bootloader没有构建我不能肯定,因为我不熟悉引导加载程序构建的可执行文件的确切名称。但我认为值得研究PyInstallerIt的较低版本,因为它似乎是使用pip安装的,或者源代码给出了相同的结果。在64位机器上,即使使用32位python版本,也会生成64位引导加载程序。不,我有一个解释,但问题没有解决不确定它是否有用,但当您通过源代码安装它时,您可以手动删除已编译的引导加载程序文件。然后python将为您构建它们。当它检测到64位windows时,如果我的理解是正确的,它不会构建32位引导加载程序这里是短总线:我现在看到了,所以你下载这个解压,导航到引导加载程序,为你的目标python编译引导加载程序。/waf all-target arch=32位,然后在这里运行python setup.py installShort总线:我现在看到了,所以你下载这个解压,导航到引导加载程序,为目标python编译引导加载程序。/waf all-target arch=32位,然后运行python setup.py安装