conda create -n colorcp(虚拟环境名) python==3.8(python版本号) #创建虚拟环境 conda activate colorcp #激活虚拟环境
创建新环境是因为不同项目需要的包的版本可能不一样,而且对于打包成exe,环境里的包太多会导致打包出来的文件很大
之后便需要在这个安装好的新环境里安装自己的程序里用到的包,此外,还需要安装pytinstaller
pip install pyinstaller
下载包的时候不要使用vpn,我使用vpn的时候,安装库就会报错
cd 到自己的程序.py所在的文件夹,如果在别的盘,需要先盘符加冒号再cd
(base) C:UsersDELL>E: (base) E:>cd E:ColorComparer2、打包
之后便可以对文件进行打包,打包有几种不同的方式,我试过 -F 和 -D。-D , -F是什么呢?这有一张表,这是从别的博主那里复制来的
(21条消息) Python打包成exe以及如何打包得足够小_hello,world-CSDN博客
使用-F会在dist文件夹生成一个.exe文件,可以直接执行;使用-D的方式打包,会在dist文件夹下生成一个文件夹,文件夹里包含.exe文件和各种依赖。先给大家看看我分别用这两种方法弄出来的文件大小吧。
用pyinstall -F 打包生成的文件:
用pyinstall -D 生成的文件:
比用-F更大呢,但是这是一个文件夹,可以删掉里面不需要的东西,来达到瘦身的效果,这是删除后的文件夹大小:
还是比用-F更大呢,但是这是一个文件夹,可以进行压缩,压缩后的文件大小:
比 -F打包的小了将近一半呢。而且用-F打包需要耗费的时间特别长,用-D打包就很快,接下来分别说说这两种打包方法。
3、pyinstaller -F 安装用这种方法的安装,我参考的是一篇博客,博主写的很好呢,跟着做就打包出来了,上面那张图也是从这里得来的,链接如下:
(21条消息) Python打包成exe以及如何打包得足够小_hello,world-CSDN博客
主要就是创建虚拟环境、在虚拟环境里安装需要的库、打包,我打包的时候用到的命令如下:
pyinstaller -F -w -i leaf.ico main.py --paths="D:ProgramDataAnaconda3envscolorcplibsite-packagescv2" # -F 是打包方式 # -w是不带控制台的打包 # -i 是使用图标 # 后面加的一串path是我的程序里用到了opencv,但是直接打包会报opencv的错,加了path就不报错了,内容是cv2的路径 # 一般不用后面的path
这个方法打包挺慢的,程序打开也挺慢的,但是直接成成一个.exe文件。
4、pyinstaller -F安装这种安装方法我参考了这篇博客:
(21条消息) Pyinstaller彻底解决打包过大的问题_u012863565的博客-CSDN博客_解决pyqt5打包后太大
大体都差不多,只是在导库的时候我用了一种可能更简便的方法。
还是先创建虚拟环境,安装程序用到的库,然后开始打包,用到的打包代码如下:
pyinstaller -D -w -i leaf.ico main.py --paths="D:ProgramDataAnaconda3envscolorcplibsite-packagescv2" # 其实就是把- F换成-D了而已
这种方法打包特别快。
之后便在dist文件夹里生成一个文件夹:
一开始只有框出来的文件夹,剩下的是我后来生成的。这时候的main文件特别大,接下来就是文件瘦身。先复制main文件夹,对就是那个副本,然后新建一个文件夹(我这里新建了一个,命名为color).
先把main里面的这三个文件复制到新建的文件夹里,这里是color文件夹:
剩下的.ui文件是我的程序里用到pyqt5,所以需要这么一个文件,也是复制进来的,.ico文件就是用到的图标文件。
python38.dll是解释器库,也是必不可少的。
那个压缩包是标准库,会自动解压到c盘的缓存目录里,你报错没有找到模块的话可以考虑直接把py文件丢到这个压缩包里面。
那个博主是这么说的,所以就先把这些文件复制到color文件夹里,那个博主这一步还有一个.py文件,但是我没搞,最后还是可以成功瘦身的。
打开main的副本文件夹,双击.exe文件。如果有项目用到.ui文件,需要把.ui文件也放到main文件夹里。程序运行的时候,全选main副本文件夹里的内容,然后删除。
遇到正在运行的问题,全部选跳过
之后把main副本文件夹里所剩余的内容全选,复制到color文件夹里,弹出的对话框里选择跳过,选覆盖也没事的吧哈哈,反正都一样
然后双击color文件夹里的.exe文件,会报错:
从main源文件夹中,找到tcl(每个程序需要的库不同,你用的时候提示的可能是别的文件,反正就在main原文件夹里找,然后复制到新建的文件夹里)文件夹,然后复制到color文件夹里:
然后再运行color文件夹里的.exe文件,可能还是报错,继续在生成的源文件夹里找,复制粘贴到新建的文件夹里。直到.exe文件可以正常运行
然后直接用压缩文件压缩color文件夹,就生成了一个很小的压缩包啦,我这里还比较大是因为程序中用到了opencv。要使用软件的时候,解压压缩包,双击里面的.exe文件即可。



