用pyinstaller生成的.exe在其他PC上崩溃-如何创建没有依赖关系的.exe?

时间:2018-10-08 11:22:10

标签: python python-3.x pyqt5 exe pyinstaller

我为一个小的PowerPoint工具生成了一个.exe文件,该文件是我使用python 3.6PyQt5框架和pyinstaller编写的。该程序在我自己的笔记本电脑上运行没有任何错误,并按预期运行。

很遗憾,我无法让.exe在另一台计算机上运行。我现在尝试使用另外两台计算机,但每台计算机上都出现不同的错误。

PC 1

Entry Point not found
The procedure entry point ucrtbase.terminate could not be
located in the dynamic link library api-ms-win-crt-runtime-l1-1-0.dll.

PC 2

This application failed to start because it could not load the Qt platform plugin 'Windows'.

困扰我的是,我在开发计算机上进行开发时遇到了最后一个错误(来自PC2),但为我自己的PC修复了此问题。 我试图做的是创建一个可以在任何PC上运行的.exe文件。这是一个简单的PowerPoint Helper,它应该是从图像文件夹中创建新幻灯片的快速工具。这就是为什么它可以无缝使用非常重要的原因。理想情况下,只需打开.exe即可,而不必担心每台计算机上将要使用的单个丢失的部分。

大问题:我能做些什么来保证我的.exe包括运行所需的所有依赖项?


我尝试过的事情(又是我自己尝试解决的问题。。。):

在此处读槽:https://github.com/pyqt/python-qt5/issues/2

更改了我的.spec,如此处所述:https://github.com/carlosperate/pyinstaller-test/blob/master/package/pyqt5_test.spec

通读所有这些内容:https://stackoverflow.com/search?page=2&tab=Relevance&q=entry%20point%20not%20found

这是https://stackoverflow.com/search?q=qt+platform+windows

这是pyinstaller exe without any dependencies?

但是没有任何帮助。...大多数帖子都在编译可执行文件时解决了问题,但这对我来说很好。

1 个答案:

答案 0 :(得分:1)

如果您使用Python 3.5,PyInstaller 3.3.1和PyQt 5.9.2,请使用fbs而非PyInstaller冻结您的应用程序。它基于PyInstaller,但是可以解决一些极端情况,例如您遇到的情况。有关设置与fb here一起使用的应用的说明。