目录
前置:
步骤:
step one 准备好已开发完毕的项目代码
step two 安装pyinstaller
step three 执行pyinstaller pdfdownload.py,获取初始.spec文件
step four 修改.spec文件,将data文件夹加入到打包程序中
step five 增加data文件夹打包
1 执行前,先看下未增加data文件夹的情况。
2 执行,pyinstaller pdfdownload.spec
3)执行后,看dist文件夹情况
step six 如果要发布免安装文件
step seven 制作成单个exe安装文件
1 下载 installForge
2 安装installForge
3 制作
视频
前置:
1 本系列将以 “PyQt6实例_批量下载pdf工具”开头,放在 【PyQt6实例】 专栏
2 本系列涉及到的PyQt6知识点:
线程池:QThreadPool,QRunnable;
信号与槽:pyqtSignal,pyqtSlot;
界面:QTextEdit,QLabel,QLineText,QPushButton,QMainWindow,QWidget;
布局:QHBoxLayout,QVBoxLayout;
弹框:QFileDialog,QMessageBox。
3 本系列后续会在B站录制视频,到时会在文末贴出链接。本人还是建议先看博文,不懂的再看视频,这样效率高,节约时间。
步骤:
step one 准备好已开发完毕的项目代码
示例项目“批量下载pdf工具”,代码中的项目名:pdfdownload
项目入口(所谓项目入口就是 if __name__ == '__main__': 该函数所在位置)所在文件名为pdfdownload.py
项目情况:
1 整个项目只有一个pdfdownload.py一个py文件
2 一个数据文件夹data,在程序执行过程中会往data中读取数据和写入数据
step two 安装pyinstaller
未避免最后打成的包过大,只包含项目执行需要的包,建议大家都在虚拟环境里开发项目,这样可以确保环境的纯净,不会有一大堆不需要包堆在环境里。本实例的操作都在虚拟环境中进行。
在虚拟环境的终端(PyCharm打开项目下的Terminal)执行 pip install pyinstaller
注意:命令行前有(venv)说明在虚拟环境里。“venv”是创建的虚拟环境名,如果创建时命名成venv123,那这里就显示为(venv123)
网络好,外加电脑配置还行的情况,安装速度非常快,两三秒时间
step three 执行pyinstaller pdfdownload.py,获取初始.spec文件
1 在terminal中定位到 pdfdownload.py 目录下,也就是定位到项目入口对应的py文件目录
2 输入 pyinstaller 项目入口文件名,本实例输入 pyinstaller pdfdownload.py
由于本实例项目很小,执行很快。执行完毕后,打开项目目录
项目目录下新增了一个文件和两个文件夹
1 .spec是打包用的配置文件。.spec的文件名可以在配置中修改,默认是项目入口文件的文件名。这个文件重要,打包的配置信息都在里面,可以根据打包需求修改配置信息进行打包
2 build文件夹。打包的过程文件,可以不用理会,用不上。
3 dist文件夹。打包后的目标文件,如果要把项目当成免安装软件发布,把dist里的文件压缩成zip进行发布。
step four 修改.spec文件,将data文件夹加入到打包程序中
如果项目里有向外读取文件(诸如:获取图标文件、读取txt文件等)或对外写入文件(诸如:程序关闭前保存状态信息到txt文件中等)的功能,需要将外部文件和文件夹加入到打包程序中。
本实例程序有一个data文件夹,在data文件夹中保存了几个文件,程序运行时会读取文件,并在运行过程中往文件写入。所以,打包时需要将data文件夹加入到打包程序中。
1 打开.spec文件
2 在 a 中的 datas 字段加上 (‘data’,'data'),前一个data指的是告知打包程序要从项目中拷贝的文件夹名,后一个data表示告知打包程序复制到结果中的文件夹名。一般不会改名,除非在项目代码中作了额外设置。
3 将控制台关闭。默认打包会把控制台打开,也就是说打包后执行exe文件会把控制台同步打开,关闭控制台也会把exe同时关闭,在实际使用exe过程中,控制台没必要打开。在.spec文件件设置控制台关闭。
step five 增加data文件夹打包
1 执行前,先看下未增加data文件夹的情况。
进入dist目录
在 _internal 中没有 data 文件夹,此时你双击 pdfdownload.exe 是会闪退的。
2 执行,pyinstaller pdfdownload.spec
1)删除项目目录下的 build 和 dist 文件夹
2)在PyCharm终端执行 pyinstaller pdfdownload.spec 命令
3)执行后,看dist文件夹情况
新增了 data 文件夹。
运行 pdfdownload.exe
检查各个功能是否正常。具体检查过程不赘述(可以看博文 PyQt6实例_批量下载pdf工具_exe使用方法-CSDN博客)。
检查没有问题后,进行下一步。
step six 如果要发布免安装文件
如果是要发布免安装文件,那到这一步就完结了,不需要用到后面的installForge操作。
直接将 dist 目录的内容压缩成 zip等压缩包发布。使用者直接解压运行 exe就行。
step seven 制作成单个exe安装文件
1 下载 installForge
https://installforge.net/download/ installForge下载地址
文件很小,只有4.19MB
2 安装installForge
3 制作
1)打开 General 面板,输入Product Name 产品名,自己定义;输入Product 可以写版本号,自己决定;选择exe可以运行的操作系统,自行勾选。
2)点击左侧Files, 然后点击上面的“Add Files”
3)选择pyinstaller生成的dist文件夹中的 exe 文件
4)点击上面的“Add Folder”
5)选择 pyinstaller 生成的dist文件夹下的 _internal 文件夹
项目内容添加完毕。
6)点击左侧“Shotcuts”,点击下面的“Add...”
7)设置好了应用安装完后桌面快捷方式的显示情况。开始栏中的设置一样。本实例没有设置图标,直接用的默认。注意:目标文件Target File 一定要和最终生成的文件名一致
本实例只创建桌面快捷方式。
8)点击左侧“Build”,Setup File 右侧的 按钮
9)选择一个空目录,等会最终生成的exe文件会在这个目录中生成。在文件名中写入要生成的exe文件名。注意,这里的文件名一定要和前面创建桌面快捷方式的目标文件Target File 文件名保持一致。
10)点击上面的“Build”
等待。。。,大概1到2分钟
制作完毕。
最终exe文件使用方法,可查看博文 PyQt6实例_批量下载pdf工具_exe使用方法-CSDN博客
视频
PyQt6实例_批量下载pdf工具_v1使用pyinstaller与installForge打包成exe文件_哔哩哔哩_bilibili
PyQt6实例_批量下载pdf工具_v2使用pyinstaller与installForge打包成exe文件_哔哩哔哩_bilibili
PyQt6实例_批量下载pdf工具_v3使用pyinstaller与installForge打包成exe文件_哔哩哔哩_bilibili