为什么Pyinstaller exe会先打开然后关闭然后再次打开?

时间:2020-08-07 02:11:01

标签: javascript python html python-3.x pyinstaller

我已经使用python,js,html和css(使用eel链接它们)编译了一个应用程序。一切正常,但是当我加载已编译的exe时,它会打开应用徽标,然后上下反弹(就像加载时Mac上的应用一样),徽标消失,然后从谷歌浏览器大约8秒钟后打开应用。

Pyinstaller可执行文件是否正常,即从chrome打开,还是我的代码中有东西?如果是这样,请发表评论,我将用我的代码的相关摘要更新此问题!

谢谢

2 个答案:

答案 0 :(得分:1)

我已经解决了这个问题,并将其发布为该问题的答案,以防将来有人遇到类似问题。

经过研究后,我发现在大多数情况下,PyInstaller在运行较大的python文件(即机器学习)的过程中速度很慢。集成PyInstaller和JS / HTML / CSS时还存在其他问题,您必须使用Eel在文档之间进行通信,随后,您制作的每个桌面/网络应用程序都必须包含google chrome。

解决方案: 作为通过PyInstaller构建桌面应用程序的替代方法,我使用Blazor / Electron构建它。 Blazor / Electron与Python之间没有直接链接,因为Blazor依赖于C#,JS / HTMLCS。因此,我将IronPython移植到了C#文件中,这使我可以按照以下路径进行通信。 C#-> Python-> C#-> JS / HTML / CSS。 Blazor / Electron的另一个优点是,该应用程序可以构建为无需Internet连接的本地桌面应用程序,并且启动速度更快。最后,C#允许为您的应用程序构建启动屏幕(在应用程序首次启动时加载屏幕),因此即使您的应用程序很大且加载时间很长,也可以通知用户桌面应用正在加载!

答案 1 :(得分:0)

是否有可能在使用Pyinstaller编译应用程序时使用了--onefile?如果是这种情况,请尝试在不使用此命令的情况下再次编译,看看问题是否仍然存在。

来自Pyinstaller文档:

...单个可执行文件的启动时间比慢一些 一文件夹捆绑。

在尝试将文件捆绑到一个文件之前,请确保您的应用能够正常工作 正确捆绑到一个文件夹时。这很容易诊断 单文件夹模式下的问题。