当前位置: 首页 > 面试题库 >

使用PyInstaller创建的应用启动缓慢

那安宁
2023-03-14
问题内容

我有一个用Python编写的应用程序,并与PyInstaller进行了“编译”。它还将PyQt用于GUI框架。

加载并显示主窗口之前,运行此应用程序大约有10秒钟的延迟。据我所知,这不是由于我的代码慢。相反,我怀疑这是由于Python运行时初始化引起的。

问题在于此应用程序是使用自定义laucncher /
taskbar应用程序启动的。用户将单击按钮启动该应用程序,看不到任何反应,然后单击另一个应用程序上的其他位置。当我的应用程序显示它的窗口时,由于SetForegroundWindow的规则,它无法进入前台。

我可以访问PyInstaller win32加载器,Python代码甚至启动器代码的源代码。

我的问题是:

  • 如何使该应用程序启动更快?

  • 我如何衡量流程生命周期的前几秒所花费的时间?

  • 减少显示第一个窗口所需时间的普遍接受的技术是什么?

我想避免添加启动画面,原因有二:一,我希望它没有帮助(开销在运行Python代码之前),二,我只是不喜欢启动画面:)

如果需要的话,我可能可以编辑PyInstaller加载程序存根以创建一个窗口,但这是我不希望采用的另一种方法。


问题答案:

我已经使用py2exe和cx_Freeze“编译”了一些wxPython应用程序,它们都不会花费超过4秒钟的时间来启动。

  • 您确定不是您的代码吗?也许有一些网络或一些I / O资源调用使您的应用程序停滞不前?
  • 您是否尝试过其他机器?有时,即使是最快的硬件也可能因使用错误的软件配置,应用或操作系统而变慢,请尝试一下。
  • 尝试使用timeit模块对其计时。

我从未使用过pyQT,但是使用wxPython时,启动速度还可以,并且在第一次初始化后,如果我再次关闭并再次打开,它的速度将比第一次快。



 类似资料:
  • 我尝试使用pyinstaller模块将我的python gui应用程序(.py)转换为可执行文件(.exe)。我在终端中运行了以下命令- pyinstaller.exe--onefile-w sourcecode.py

  • 每次运行应用程序都必须启动iisexpress吗?

  • 当我尝试运行spring boot应用程序时,我遇到了以下异常: 组织。springframework。豆。工厂BeanCreationException:创建名为“configurationPropertiesBeans”的bean时出错,该bean在类路径资源[org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebi

  • 问题内容: 我正在尝试使用AngularJS youtube频道上的演讲中所述的AngularJS创建启动屏幕?t= 10m20s 它使用ng-cloak指令。这是HTML: 和CSS: 这是一个小提琴:http : //jsfiddle.net/TimFogarty/LaBvW/2/ 在小提琴中,启动div并没有像讲话中所说的那样消失。这段代码有什么问题吗?我做错了吗?如何实现此初始屏幕? 问题

  • 依照国际惯例,我们还将用Ionic 2继续创建hello,world。 hello,world 开始之前我们需要先安装Ionic的命令行工具,后面我们需要用这个工具来创建工程。 npm install -g ionic@beta 如果没有意外,我们将安装成功,然后可以使用ionic命令: 它自带了一系列的工具来加速我们的开发,这些工具可以在后面的章节中学习到。 Available tasks: (