背景:
我程序用到了一些个比较大的包,即便是from xxx import xxx 依然还是很大,仅仅加载模块就需要1s;而这个包并不是在每种运行场景下都需要,所以我把包的import 做到了逻辑代码里,用到时在加载(懒加载),通过测试确实奏效了,但是因为程序需要使用pyinstaller 打包,打包后这些懒加载的模块的懒加载效果都消失了,执行未使用模块的逻辑代码,执行耗时依然很慢;下图分别是 不打包,和打包后的执行耗时;
问题:
如何使得用pyinstaller 打包的程序懒加载不失效,我猜测,pyinstaller 在打包的过程中会检测当前用到了哪些包 然后全部打到包里 然后逻辑代码每次执行前先全部加载所有模块,是否有那么一种方法可以避免这种情况