python工具pyinstaller打包生成exe文件非常大的原因分析(openpyxl)openpyxl

【python】python的打包工具pyinstaller生成exe非常大的原因分析(openpyxl)openpyxl

 -F 打包出来 一个一个都有200多M

from tkinter import *
from tkinter.font import Font
from email.mime.text import MIMEText
from email.header import Header
import tkinter
import tkinter.messagebox
import tkinter.simpledialog
import tkinter.filedialog
import openpyxl
import smtplib
import threading


print(3*2)

每次删掉一行,打包一个一个个包进行测试。发现有的包打出来没什么影响。

发现有一个包异常,只要有这个包,就是特别大---openpyxl

打包时间也特别长

检查日志:发现openpyxl  与 pandas numpy有关。

单独将代码提出,用两种方法调用,发现没什么卵用。

from openpyxl import load_workbook

#import openpyxl

workbook = openpyxl.load_workbook('data.xlsx')

都还是200多m

PyInstaller very big file size

win7(64bit)  

anaconda ( 3 )

python(3.6) 

pyinstaller (3.4.dev0+469f1fa19)

openpyxl (2.4.8)  


I've made simple code like this:
------code------------------------------------------
#import openpyxl
workbook = openpyxl.load_workbook('data.xlsx')
------code------------------------------------------

 File size (python files) is 1.0 KB.
 But when I create executable using PyInstaller, I get 200 MB file!
 About openpyxl..... Why the generated files are so big?

 Is there a way to decrease file size?

 

在网上问了外国人,建议说是要安装一个 python的虚拟机器,因为我们安装的是Anaconda,里面很多库连接进去了很多不必要的其他库和包

有道理!

所以,干脆用一台笔记本,安装纯python3.6的环境。并单独把openpyxl 单独下下来,到时候有用。

 

装好后,继续用pip 把 pypiwin32 装好。这里有个坑:

要用 pip install pypiwin32,  而不是     pip install pywin32.

装好后,按照一个不知名的方法,建议把这个 openxyl 解压到pyinstall 的根目录。等下要用。(好像有用)

然后把我的 py文件要打包的。也放到 pyinstaller 根目录。

pyinstaller -F mainGUIversion5.py      打包开始。

打包好后,发现竟然打包完成。 但是运行不了

直接到cmd窗口去运行,发现有少包,见下图,缺什么用pip装什么,这样做,尽量不污染python原生环境。

Need  pure  python environment!!!

No Anaconda

例如,这个是少了 jdcal包:

一次一次打包,一次次运行发现少包。

 

最后发现,ok了!!!!  最后一次打包为 不到8m了。  从200M直接压缩到了 8M,任务完成。

 

运行也正常!

 

 

第二天开始做一个实验:

看到底是包的问题,还是python 的问题,先将openpyxl包从pyinstaller目录剪切出去,直接放到桌面,不删掉:

执行后,发现打包可以,但是程序运行错误,提示“缺少openpyxl”。。错误找到了

 

于是  ,开始pip 安装包。安装后再执行打包。成功!

打包成功!

这么多步骤与尝试下来。得出结论。pyinstaller的正确打包有两种方法:

第一种方法:将需要打包的程序和其所有依赖的包,统一放在pyinstaller的根目录下,直接用-F打包即可成功,少一个包都不行!

第二种方法:安装一个纯净的python环境,然后一步步测试pip,少哪个包就直接安装哪个。

两种方法各有千秋,但是推荐使用第二种方法,因为这种方法相对简便,特别是在不清楚包之间的依赖关系的情况下。

--------------------- 本文来自 captain811 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/captain811/article/details/79628686?utm_source=copy

  • 16
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
根据引用\[1\]中提供的信息,安装pyinstaller的步骤是通过pip来进行的。首先,需要确保已经安装了pip,并且可以通过命令行来执行pip命令。然后,可以使用以下命令来安装pyinstaller: ``` pip install pyinstaller ``` 如果在安装过程中遇到权限问题,可以尝试使用管理员权限来执行安装命令。可以通过在命令行中使用"cd"命令来切换到pip的安装目录,然后使用以下命令来安装pyinstaller: ``` python setup.py install ``` 如果你已经安装了pyinstaller,但生成exe文件无法运行,根据引用\[2\]和引用\[3\]的信息,可能是由于不同版本的Openpyxl导致的问题。你可以尝试更新Openpyxl模块的版本,以确保与你用来打包的版本兼容。如果在更新Openpyxl模块后仍然遇到问题,你可以尝试通过运行打包好的exe文件并查看报错信息来获取更多的信息。可以通过按下"Win + R"键,然后输入"cmd"来打开命令行窗口,然后将打包好的exe文件拖入命令行窗口中并按下回车键来运行。这样可以查看报错信息并找到解决问题的方法。 #### 引用[.reference_title] - *1* [pyinstaller 生成 exe](https://blog.csdn.net/sepnineth/article/details/125019778)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [pyinstaller使用后exe文件无法正常运行的问题解决](https://blog.csdn.net/weixin_73778478/article/details/128169337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值