首页 > 技术文章 > 最干净的pyinstaller打包成exe应用程序方法

mrtop 2019-03-24 22:57 原文

在anaconda环境下进行pyinstaller打包后,程序非常大,70行代码打包后有280MB,这是因为会将conda环境携带的库都打包进去导致的。为了获得更纯净的包环境,我们需要安装纯python环境,也就是缺什么包就安装什么包(pip install   pake_name),但是也发生了很多有意思的事情:

一、安装纯净的python36

最开始想偷懒安装 python34,但是最后需要安装pandas的时候,发现 全网都是python36环境下的,没辙只好再去下载python 36

 

二、环境变量设置

安装纯净的python36后(这个路径是单独的一个文件夹路径,比如C:/python36),将python36的pip路径加入到环境变量中(环境变量很多 分号别丢),我的pip.exe位置在C:/python36/Scripts,只要把这个环境加进去就好了。

之后一并安装好所需的包,因为我只import pandas 库,所以在这种纯净环境下一共需要 pyinstaller  、pandas即可,所以一轮操作 直接 pip install pyinstaller   pip install pandas  然后就到了 pyinstaller  -F -i ./conpas.ico  Compare_dif.py 

三、打包程序过程的错误

1、执行 pyinstaller  -F -i ./conpas.ico  Compare_dif.py后也很顺利,程序只有22M,很满足,运行后发现了第一个dos下错误:ImportError: No module named openpyxl,好 那就pip install openpyxl,

2、再次执行打包后运行,又跳出来了xlrd模块缺失,想了想 程序最后需要打开xlsx文件,嗯,又一次pip install xlrd

 

 3、再次执行打包后 又跳出来一个fin_list查找不到的提示,这个原因在于 fin_list是最后的一个结果,里面有drop的操作,用if判断,如果被drop_list空,那就直接输出,忘了做else操作

程序修正前:

 

程序修正后:

 

最后完美通过。

 

推荐阅读