最干净的pyinstaller打包成exe应用程序方法
在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操作
程序修正前:
程序修正后:
最后完美通过。