为什么导入openpyxl需要这么长时间?

问题描述

我用python tkinter编写了一个GUI程序,并注意到它的启动非常慢,显示窗口花了8秒钟!我检查了代码,最终发现它是由于名为 openpyxl 的Excel读/写模块所致。当我注释掉该行时:import openpyxl。 GUI窗口立即显示

我还尝试在python提示符下运行代码import openpyxl,并且几乎花了3秒钟来完成代码的运行!

加载此模块需要很长时间吗?

PS:我正在使用openpyxl 3.0.2

解决方法

我不知道为什么为什么这么慢,但是我确实知道事实确实如此。您可以尝试使用代码分析器(例如PyCharm中的代码)来找出花费了这么长时间的时间,或者可以通过在需要时在运行时导入模块来改善用户体验。

请执行以下操作:

import openpyxl


... gui stuff


def on_button_clicked():
    openpyxl.do_something()
    ...done

以下代码需要很长时间才能为用户加载,将其更改为以下代码将大大提高启动性能并带来更好的用户体验。

请注意,在一天结束时,代码仍然需要3秒钟的加载时间,但是您要将其移到人们不介意发生的地方,因为他们希望这样做会花更长的时间他们按下按钮,就会显示装载程序


... gui stuff


def on_button_click():
    ... show a loader or something
    import openpyxl
    openpyxl.do_something()
    ... done