大家好,第一次写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 )
一般步骤有三种,可以根据需求使用:
-
Pyinstaller -F py_word.py 打包exe
-
Pyinstaller -F -w py_word.py 不带控制台的打包
-
Pyinstaller -F -w -i aaa.ico xxx.py 打包指定exe图标打包
ico图片可以自己设计好后,在网上直接在线转ico 保存本地,文件放在和打包程序xxx.py同位置即可(注不可直接将图片后缀改成ico)
重点来了:
打包完成后,生成的程序在dist文件夹下面。运行exe文件,我在窗口下输入所需要信息后等待几秒后运行一下,弹出几条信息立马闪退,程序报错了,还看不见。
于是用微信或qq截图快捷键做好准备,运行程序弹出报错信息时快速截图
识别文字后贴入百度一搜,原来是pandas里面嵌套了openpyx1库文件,再次再pipenv环境中安装pip install openpyx1 (大家注意自己程序报错截图)查原因解决后基本不会出问题了