导入方式对pyinstaller生成的exe大小的影响

起因

我之前一直以为如果在原代码中引用了什么包什么库,pyinstaller会把整个包打进去,

但我将文件夹点开后,发现事情没那么简单。

好像没打进去很多东西

对比源代码,少了很多

那么,是因为pyinstaller很智能吗,扫出来我究竟导了什么?

如果能,能扫出每一种导入方式吗?

经过

我写了三个文件,引用了numpy和PIL。作用是画出一个这样的画

#01.py
from PIL import Image
import numpy
im=numpy.linspace(1,256,27000000)
im=im.reshape((300,300,300))
im=Image.fromarray(im,mode="RGB")
im.save("1.bmp")
#02.py
from PIL import Image
from numpy import linspace
im=linspace(1,256,27000000)
im=im.reshape((300,300,300))
im=Image.fromarray(im,mode="RGB")
im.save("1.bmp")
#03.py
from PIL import Image
from numpy import *
im=linspace(1,256,27000000)
im=im.reshape((300,300,300))
im=Image.fromarray(im,mode="RGB")
im.save("1.bmp")

再用pyinstaller打包(不给参数)

结果如下

  1. py 打出来的文件夹大小79401921字节

  1. py 79401951字节

  1. py 79401948字节

大小差距都在100字节以内,没有明显差距

结论

pyinstaller能够分辨源代码中引用什么包中的什么模块,对于三种导入(导入模块、导入模块中的所有东西、导入模块中的指定东西)都是成立的。并在可能范围内减小文件体积

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值