【pipenv】pyinstaller打包python程序(pythonGUI)

操作系统:Windows 10
Python版本:Anaconda

打包前,先安装pipenv:

pip install pipenv

打包步骤

1.创建名为【pipenvir】的文件夹,并把需要打包的.py和.ico文件放入(我这里的演示放入了app.py、app2.py和app.ico三个文件)
2.cmd进入pipenvir目录,输入以下命令:

pipenv install –python 3.10

备注:这里的3.10替换成你自己的python版本

pipenv shell

备注:进入pipenv虚拟环境

pipenv install pyinstaller pillow requests PySimpleGUI pywinauto datetime psutil BeautifulSoup4 pyautogui

备注:这里install的内容为打包的.py文件需要用到的所有依赖,其中pyinstaller是必要的,pillow对我的图标文件.ico有用

pyinstaller -w -D --clean --icon=app.ico app.py app2.py

备注:将我的app.py打包成exe(app.py用到了app2.py的一些函数,所以也要打包)

参数说明
-w打开exe程序的时候不会出现cmd窗口(只对windows有效)
-D将依赖和应用程序分开打包在dist目录()
–clean打包前清除之前打包残留的缓存文件(但不会清除之前的dist文件)
–icon将app.ico添加为打包的exe文件的图标(在pipenv环境需要pillow库哦)

打包完成后的exe应用程序在dist目录里

踩坑过程

1.pyinstaller参数

初尝pyinstaller时,我是直接进入我的项目里面cmd运行命令:

pyinstaller -F app.py

参数【-F】打包好的东西就只有一个exe应用程序,打开它的速度并不快,后面参数换成【-D】后快一些。
然后了解了一些参数后,我的命令就变成了这样:

pyinstaller -w -D --add-data=app2 --clean --icon=app.ico app.py 

因为我app.py代码太多了,所以新建了一个app2.py,而app2里面依赖的库和app有一些不同,上面的命令【–add-data=app2】就是在百度上找的,我以为这个命令的作用是将app2.py以及依赖的库一并打包进去,显然,结果就是给我报错:找不到依赖的库。因为–add-data参数的作用是将一些txt、png文件打包进去,并不能自动识别需要的库。后面用用到了【–hidden-import=BeautifulSoup】这种命令才得以解决,但是这种方法还是很麻烦。

2.打包的python虚拟环境

摸透pyinstaller参数后,我发现我写得python程序并不复杂,但是打包出来的dist文件占了我900多M,而且打开exe的速度很不理想,我又上百度,才得知我将我的anaconda安装的所有库全打包进去了,我服了自己。
慢慢问博客后才知道用pipenv打包更好,然后我就根据我import的依赖,全写进【pipenv install xxx】命令里,结果一个劲的报错。因为有些依赖,比如【os】【time】这些,他们都是python环境自带的,不用写进【pipenv install xxx】命令里。将这些剔除后命令才得以成功运行,打包后的dist目录一下从900多M变成30M,30倍大小优化,打开exe应用程序的速度也更快了3秒,太妙了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值