python打包exe,用pyinstaller,减小打包体积方法[pipenv]

大家好,第一次写csdn,主要是自己碰到的问题查了好几地方都没讲透,今天把自己碰到问题和大家一起分享,希望大家也避坑。

      今天用pyinstaller打包,一个程序打包完有340Mb,翻一下之前打包文件仅30Mb~40Mb,分析了一下,网上也找了一下原因:

1、原来打包文件时,我电脑只安装了python,编辑器用的pycham,刚用没多久,库文件装得很少。

2、这次电脑安装了Anaconda,里内置了很多库,打包时会将一些不需要的库都打包进程序,而且速度也慢。

我的解决方法:

1.网上查完建议用Pipenv虚拟环境,具体步骤:

安装pipenv库:  pip install pipenv -i https://pypi.tuna.tsinghua.edu.cn/simple/   #(清华镜像源)

运行pipenv虚拟环境 : pipenv shell  

这是未进虚拟环境前:

进入虚拟环境后 

 注意:多了“(python学习视频-0l8esk90)”表示已进入虚拟环境。每个人python路径不一样,前部分名称不一样,根据自己查看。

在此虚拟环境下安装pyinstaller库(原程序已安装的,在虚拟环境下再装一次)

pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple/ 

安装要自己打包文件调用的库文件,比如我的:

 在pipenv虚拟环境下以此安装pandas/requests/ jsonpath/bs4库,random不用装,自己程序逐个pip install xxx安装所需库。

可以开始打包了,我的xxx.py文件就在“ F:\python学习视频”下面,所以直接打包

pyinstaller -i aaa.ico -F xxx.py   (自己常用,我的基本都需要控制台dos界面,输入程序所要的信息用,所以不要 - w  )

一般步骤有三种,可以根据需求使用:

  1. Pyinstaller -F py_word.py 打包exe

  2. Pyinstaller -F -w py_word.py 不带控制台的打包

  3. Pyinstaller -F -w -i aaa.ico xxx.py 打包指定exe图标打包

ico图片可以自己设计好后,在网上直接在线转ico 保存本地,文件放在和打包程序xxx.py同位置即可(注不可直接将图片后缀改成ico)

重点来了:

打包完成后,生成的程序在dist文件夹下面。运行exe文件,我在窗口下输入所需要信息后等待几秒后运行一下,弹出几条信息立马闪退,程序报错了,还看不见。

于是用微信或qq截图快捷键做好准备,运行程序弹出报错信息时快速截图

识别文字后贴入百度一搜,原来是pandas里面嵌套了openpyx1库文件,再次再pipenv环境中安装pip install openpyx1 (大家注意自己程序报错截图)查原因解决后基本不会出问题了