gpt4 book ai didi

python - 加速已编译的 python 程序?

转载 作者:行者123 更新时间:2023-11-28 16:49:32 25 4
gpt4 key购买 nike

我有一个相当“繁重”的 python 程序,我想编译成一个 exe。

该程序有相当数量的导入,但使用 PyQT4 框架,我在启动画面可见时加载这些导入。
我使用 pyinstaller(在 cmd 中)将此程序编译为单个 .exe 文件:

python %pycompile_file% --onefile --noconsole --icon=Icon.ico Script.pyw

然而,即使启动画面设置为在导入大量模块(特别是 sympy)时显示,即使它在通过 python 运行时立即显示并持续足够长的时间;
运行生成的 .exe 会导致在启动画面显示之前出现严重延迟,这只会在加载整个程序之前显示很短的时间。

我怀疑从 .pyw 编译到 .exe 已经加快了实际的“代码”(因此启动画面更短),但减慢了程序执行的实际“开始”。

我该如何解决这个问题,使 .exe 不会“启动得太慢”?

(我怀疑编译到 --onefile 有很大贡献,但我需要 .exe 文件是所有 .dll 的一个文件夹,我不知道如何让 pyinstaller 执行此操作)

谢谢!


Windows 7
python 2.7.2
py安装程序
PyQt4

最佳答案

Pyinstaller 不会将 python 代码转换为 native 代码,它只是将 python 字节码和字节码解释器打包到一个文件中——一旦启动开销被排除在外,实际处理将以完全相同的速度进行。

Pyinstaller 的 --onefile 模式会使您的应用程序启动速度变慢,因为它必须先将所有库解压缩到一个临时目录中,然后才能加载它们。对于 PyQT,这些库相当大,因此延迟会很明显。使用单目录模式,这样 DLL 就不需要解包,应该会快得多。

关于python - 加速已编译的 python 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9174062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com