有意思的pyinstaller打包

Posted mrtop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有意思的pyinstaller打包相关的知识,希望对你有一定的参考价值。

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

一、安装纯净的python36

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

 

二、环境变量设置

安装纯净的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操作

技术图片

程序修正前:

技术图片

 

程序修正后:

技术图片

 

最后完美通过。

 

以上是关于有意思的pyinstaller打包的主要内容,如果未能解决你的问题,请参考以下文章

pyinstaller打包报错: RecursionError: maximum recursion depth exceeded,UnicodeDecodeError 解决办法

用pyinstaller打包出现找不到指定的模块?

pyinstaller打包

pyqt用pyinstaller打包出exe文件后运行不了?如图

python 使用pyinstaller打包程序

python-pyinstaller打包