PyQt6实例_批量下载pdf工具_使用pyinstaller与installForge打包成exe文件

目录

前置:

步骤:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/42576.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

open-cv的安装

python -m pip install numpy matplotlib opencv-python 【记得科学上网,不然太慢了】

AI写一个视频转图片帧工具(python)

现在的AI写python太方便了 说的话 我想用python实现一个能够将视频的所有帧数转化为图片的软件,可以自由配置转换的帧率或者全部,需要有界面,我需要增加一点功能,就是我需要读取出视频的分辨率,然后设置输出帧的分辨…

Axure RP9.0教程: 多级联动【设置选项改变时->情形->面板状态】(给动态面板元件设置相关交互事件的情形,来控制其他面板不同的状态。)

文章目录 引言I 多级联动(省、市、区)实现思路添加三省、市、区下拉列表给省下拉框添加数据源将市、区下拉框添加不同状态,分别以省、市命名给省下拉控件设置选项改变时的交互事件省下拉控件的交互事件情形市下拉交互事件的配置II 知识扩展: 展示省 → 地级市 → 区县的多级…

浙江大学|DeepSeek系列专题公开课|第一季|PDF+视频(全)

大家好,我是吾鳴。 之前吾鳴给大家分享过由浙大出品的DeepSeek系列专题公开课的教程,不过都比较零散,而且都只有PDF,有粉丝朋友直呼看得不过瘾。今天吾鳴把视频也给大家找来了,而且把第一季的DeepSeek系列公开课也稍做…

数据可视化(matplotlib)-------图表样式美化

目录 一、图表样式概述 (一)、默认图表样式 (二)、图表样式修改 1、局部修改 2、全局修改 二、使用颜色 (一)、使用基础颜色 1、单词缩写或单词表示的颜色 2、十六进制/HTML模式表示的颜色 3、RGB…

SpringBoot3解决跨域请求问题(同源策略、JSONP、CORS策略)(Access-Control-Allow-Origin)(2025详细教程)

目录 浏览器跨域请求问题。 浏览器同源策略。 第三方API调用。 前后端分离项目。 一、JSONP。&#xff08;dataType:jsonp&#xff09; &#xff08;1&#xff09;代码示例。 <1>前端ajax04.jsp页面。(发起Ajax请求) <2>后端springboot接口。(/hello)(返回JSONPObj…

rent8_wechat-新增提醒收租功能

本次更新中&#xff0c;rent8_wechat 小程序全新推出了“提醒收租”功能&#xff0c;为房东提供更加便捷的收租体验。房东只需在小程序内点击“提醒收租”按钮&#xff0c;系统便会在需要收租当天的上午9点准时推送通知&#xff0c;贴心提醒房东及时收取租金。 以下是该功能的…

诠视科技MR眼镜如何安装apk应用

诠视科技MR眼镜如何安装apk应用 1、使用adb工具安装1.1 adb工具下载1.2 解压adb文件1.3 使用adb安装apk 2、拷贝到文件夹安装 1、使用adb工具安装 1.1 adb工具下载 点击下面的链接开始下载adb工具&#xff0c;下载结束以后解压文件。 下载链接: https://download.xvisiotech…

JAVA学习*异常

什么是异常 在 Java 里&#xff0c;异常是指程序运行期间出现的不正常状况&#xff0c;它会中断程序的正常执行流程。 异常的分类 Java 中的异常是对象&#xff0c;这些对象都继承自 Throwable类。Throwable类有两个主要的子类&#xff1a;Error 和 Exception。 Error类表示…

DataGear 5.3.0 制作支持导出表格数据的数据可视化看板

DataGear 内置表格图表底层采用的是DataTable表格组件&#xff0c;默认并未引入导出数据的JS支持库&#xff0c;如果有导出表格数据需求&#xff0c;则可以在看板中引入导出相关JS支持库&#xff0c;制作具有导出CSV、Excel、PDF功能的表格数据看板。 在新发布的5.3.0版本中&a…

【电气设计】接地/浮地设计

在工作的过程中&#xff0c;遇到了需要测量接地阻抗的情况&#xff0c;组内讨论提到了保护接地和功能接地的相关需求。此文章用来记录这个过程的学习和感悟。 人体触电的原理&#xff1a; 可以看到我们形成了电流回路&#xff0c;导致触电。因此我们需要针对设备做一些保护设计…

【计算机操作系统】线程的概念和特点

1、什么是线程&#xff0c;为什么要引入线程&#xff1f; 还没引入进程之前&#xff0c;系统中各个程序只能串行执行。 比如&#xff1a;当我们在使用QQ与好友视频时&#xff0c;我们可以给其他好友发信息&#xff0c;发送文件...&#xff0c;我们知道进程是程序的一次执行&am…

【C++数据库】SQLite3数据库连接与操作

注意:本文代码均为C++20标准下实现 一、SQLite3库安装 1.1 安装库文件 【工具】跨平台C++包管理利器vcpkg完全指南 vcpkg install sqlite3# 集成至系统目录,之前执行过此命令的无需再次执行 vcpkg integrate install1.2 验证代码 在VS2022中新建控制台项目,测试代码如下…

CLion下载安装(Windows11)

目录 CLion工具下载安装其他 CLion CLion-2024.1.4.exe 工具 系统&#xff1a;Windows 11 下载 1.通过百度网盘分享的文件&#xff1a;CLion-2024.1.4.exe 链接&#xff1a;https://pan.baidu.com/s/1-zH0rZPCZtQ60IqdHA7Cew?pwdux5a 提取码&#xff1a;ux5a 安装 打开…

‘无法定位程序输入点kernel32.dll’详细的修复方法,一键快速修复kernel32.dll

在 Windows 系统运行过程中&#xff0c;若程序提示“无法定位程序输入点 kernel32.dll”&#xff0c;往往意味着程序调用了 kernel32.dll 中不存在或已变更的函数接口。作为系统的核心动态链接库&#xff0c;kernel32.dll 承担着内存管理、进程控制、文件操作等底层功能&#x…

二层综合实验

拓扑图 实验要求 1.内网IP地址使用172.16.6.0/16分配 2.sw1和sW2之间互为备份 3.VRRP/STP/VLAN/Eth-trunk均使用 4.所有Pc均通过DHCP获取IP地址 5.ISP只能配置IP地址 6.所有电脑可以正常访问IsP路由器环回 实验思路 这是一个二层综合实验每当拿到一个实验看清楚要求之后都有…

PS 切割图片

选择矩形工具绘制矩形 选中全部矩形&#xff0c;旋转一下角度 鼠标选中最下面的黄色图片&#xff0c;按住 Ctrl 键&#xff0c; 再用鼠标点击矩形的缩略图&#xff0c;选中选区&#xff0c;再按下 ctrlj &#xff0c;复制选区。 同样操作弄好其他的矩形选区&#xff0c;再删除…

项目管理证书 PMP 的含金量高吗?

一、国内PMP的含金量 1. 行业认可度 高需求行业&#xff1a;IT、通信、建筑、制造、金融等行业对PMP认可度较高&#xff0c;尤其是跨国企业、大型国企&#xff08;如华为、阿里、腾讯、中建等&#xff09;常将PMP作为项目经理岗位的优先录用条件。 招聘门槛&#xff1a;部分企…

旅游CMS选型:WordPress、Joomla与Drupal对比

内容概要 在旅游行业数字化转型进程中&#xff0c;内容管理系统&#xff08;CMS&#xff09;的选择直接影响网站运营效率与用户体验。WordPress、Joomla和Drupal作为全球主流的开源CMS平台&#xff0c;其功能特性与行业适配性存在显著差异。本文将从旅游企业核心需求出发&…

LeetCode349两个数组的交集

思路&#xff1a; 这个题目是查找交集&#xff0c;考虑用哈希数组&#xff0c;c语言用数组建立哈希表来解题&#xff0c;题目限定了数组长度在1000以内&#xff0c;那么可以设定一个result数组用于存储交集 1.我们需要将nums1映射到哈希表中 2.遍历nums2查询哈希表中是否存在该…