当前位置: 首页 > news >正文

【python】py文件全自动打包成spec文件

说明:

自动获取当前根目录下所有py文件生成spec文件,直接运行pyinstaller进行打包即可。直接打包成单执行文件。

直接上代码

import ospathex = []def recursion(path, main):if path[:1] != '/':path += '/'listpath = os.listdir(path)for item in listpath:if os.path.isdir(path + item):recursion(path + item, main)# print('文件夹',path +item)elif os.path.isfile(path + item):# if '.py' in item and '.pyc' not in item and '__init__' not in item and '.pyz' not in item and main not in item:if '.py' in item and all(i not in item for i in ['.pyc', '__init__', '.pyz','.pyd', main]):# print('文件',path +item)pathex.append(path + item)else:print('未知文件', path + item)def getTxt():return """# -*- mode: python ; coding: utf-8 -*-
block_cipher = Nonea = Analysis(['${thisMain}.py'],pathex=${thisPath},binaries=[],datas=[],hiddenimports=${thisPy},             runtime_hooks=[],excludes=[],win_no_prefer_redirects=False,win_private_assemblies=False,cipher=block_cipher,noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,cipher=block_cipher)
exe = EXE(pyz,a.scripts,a.binaries,a.zipfiles,a.datas,[],name='Main',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,upx_exclude=[],runtime_tmpdir=None,console=True )"""if __name__ == '__main__':# 要使用pyinstaller打包的项目路径# path = 'E:/pythonProject/test1/pyqt'path = os.path.dirname(__file__)# 打包项目的入口文件名main = 'main'recursion(path, main)hiddenimports = []for i in pathex:if i != path:# print(i[:i.rindex('/')])hiddenimports.append(i.replace(i[:i.rindex('/')], '').replace(i[i.index('.'):], '').replace('/', ''))pathexs = []pathex.append(path)for i in pathex:if i != path:pathexs.append(i.replace(os.path.abspath(os.path.join(os.getcwd(), "../")), '').replace('/', '\\'))continuepathexs.append(i.replace('/', '\\'))outTxt = getTxt().replace("${thisPy}",f'{hiddenimports}').replace("${thisPath}",f'{pathexs}').replace("${thisMain}",main)with open(f"{path}/{main}.spec","w",encoding="utf-8")as f:f.write(outTxt)f.close()exit(0)

打包后的spec文件怎么使用?

直接在terminal窗口执行 pyinstaller 文件名.spec 然后回车即可

相关文章:

【python】py文件全自动打包成spec文件

说明: 自动获取当前根目录下所有py文件生成spec文件,直接运行pyinstaller进行打包即可。直接打包成单执行文件。 直接上代码 import ospathex []def recursion(path, main):if path[:1] ! /:path /listpath os.listdir(path)for item in listpath:if…...

YOLOv5-调用官方权重进行检验(目标检测)

🍨 本文为[🔗365天深度学习训练营学习记录博客 🍦 参考文章:365天深度学习训练营-第7周:咖啡豆识别(训练营内部成员可读) 🍖 原作者:[K同学啊 | 接辅导、项目定制](https…...

springMVC中统一异常处理@ControllerAdvice

1.在DispatcherServlet中初始化HandlerExceptionResolver 2.controller执行完成后执行processDispatchResult(processedRequest,response,mappedHandler,mv,dispatchException),有异常则处理异常 3.ExcepitonHandlerExceptionResolver中执行方法doResolveHandlerMethodExceptio…...

【Java】<泛型>,在编译阶段约束操作的数据结构,并进行检查。

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ JAVA泛型 泛型介绍: ①泛型&#…...

解决谷歌学术bib信息不全的问题

在我们撰写学术论文时,经常需要引用参考文献。如果用latex撰写论文,势必会用到文献的bib信息,大部分的教程都会告诉我们去google scholar上去搜索。 一、问题描述 搜索一篇文章,然后选择cite,再选择bib。 很明显&…...

初始Redis 分布式结构的发展演变

目录 Redis的特点和使用场景 分布式系统的引入 单机系统 分布式系统 应用服务器的增多(处理更多的请求) 数据库读写分离(数据服务器的增多) 引入缓存 应对更大的数据量 业务拆分:微服务 Redis的特点和使用场景 我们先来…...

关于动态内存管理中的常见练习题

文章目录 前言练习1:练习2:练习3:练习4: 前言 学习完C语言中的动态内存管理,大家开始利用动态内存管理来去开辟空间,经过一顿狂敲代码后,发现了问题,程序要么崩掉,要么运…...

冒泡排序、插入排序、选择排序和快速排序的原理

下面是对冒泡排序、插入排序、选择排序和快速排序的原理的简要解释: 冒泡排序(Bubble Sort):冒泡排序是一种简单的排序算法。它通过多次迭代比较相邻的元素,并交换它们的位置,使得较大(或较小&…...

VB.NET之SqlCommand详解

目录 一.前言 二.SqlCommand的背景方法 1.构造函数 2.属性 3.方法 三.SqlCommand的使用实例 1.创建SqlCommand对象 2.执行SQL查询语句 3.执行存储过程 四.总结 一.前言 VB.NET的SqlCommand是ADO.NET的一部分,主要用于执行SQL语句并返回受影响的行数、查询…...

.NET主流的ORM框架 2023年

1. Entity Framework Entity Framework是Microsoft开发的一款强大的ORM框架。适用于.NET开发,支持多种数据库,并提供了广泛的文档和教程。Entity Framework基于面向对象的数据模型,使用LINQ进行查询。它的强大功能和易用性使得它成为.NET开发…...

第三节——Vue 基础语法

vue语法分为选项是API(Option api)和组合式api(Composition Api),我们以选项式Api入门 一、基本构成 template、script、style三部分构成。template可以理解成编写html的地方,script编写逻辑js的地方,sty…...

PR BeatEdit 节奏卡点神器 的报错 beat detection error: IBT failed 和解决路径

环境:DELL Latitude 笔记本 16G内衬,Win10,PR 2021,BeatEdit Pr 2.1.003 安装PR BeatEdit 节奏卡点神器没有问题,可以调出。 导入音频时报错:beat detection error: IBT failed 根据 BeatEdit for Premi…...

LeetCode75——Day13

文章目录 一、题目二、题解 一、题目 1679. Max Number of K-Sum Pairs You are given an integer array nums and an integer k. In one operation, you can pick two numbers from the array whose sum equals k and remove them from the array. Return the maximum num…...

【单元测试】--测试驱动开发(TDD)

一、什么是测试驱动开发 测试驱动开发(Test-Driven Development,TDD)是一种软件开发方法,其核心思想是在编写实际代码之前,首先编写测试用例。TDD 的主要步骤如下: 编写测试用例:首先&#xf…...

【计算机网络】UDP的报文结构和注意事项

UDP(User Datagram Protocol,用户数据报协议)是一种无连接的协议,它在传输层中提供了简单、不可靠的数据传输服务。与TCP(Transmission Control Protocol,传输控制协议)不同,UDP不需要建立连接&…...

【网络编程】基于epoll的ET模式下的Reactor

需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、Reactor介绍 二、基于epoll的ET模式下的Reactor计算器代码 1、Tcp…...

位操作符^以及正负数在计算机中的存储

(数据是怎么在计算机中存储的)​ 正数和负数在内存中都是以补码的形式存储的&#xff0c;但不同的是正数的原码&#xff0c;补码&#xff0c;反码都是相同的&#xff0c;而负数的原码&#xff0c;补码和反码是不同的。 负数的原码&#xff0c;补码&#xff0c;反码之间存在什么…...

Linux系统管理:虚拟机Kylin OS安装

目录 一、理论 1.Kylin OS 二、实验 1.虚拟机Kylin OS安装准备阶段 2.安装Kylin OS 3.进入系统 一、理论 1.Kylin OS &#xff08;1&#xff09;简介 麒麟操作系统&#xff08;Kylin OS&#xff09;亦称银河麒麟&#xff0c;是由中国国防科技大学、中软公司、联想公司…...

Nvidia显卡L40S学习:产品规格,常用名词解释

L40S 1 产品形态 构建NVIDIA OVX服务器&#xff0c;面向数据中心&#xff0c;用于加速AI训练和推理、3D设计和可视化、视频处理和工业数字化等复杂的计算密集型应用每个OVX服务器上8个L40S GPU&#xff0c;每个GPU配备48GB GDDR6超快内存 2 产品发展 具有许多与之前的 NVID…...

【safetensor】介绍和基础代码

Hugging Face, EleutherAI, StabilityAI 用的多 介绍 文件形式 header&#xff0c;体现其特性。如果强行将pickle或者空软连接 打开&#xff0c;会出现报错。解决详见&#xff1a;debug 连接到其他教程结构和参数 安装 with pip:Copied pip install safetensors with con…...

Stable-Diffusion-v1-5-Archive 模型部署运维指南:监控、日志与故障排查

Stable-Diffusion-v1-5-Archive 模型部署运维指南&#xff1a;监控、日志与故障排查 部署好一个AI模型&#xff0c;就像把一台新机器开动起来&#xff0c;真正的挑战往往在后面。模型跑起来了&#xff0c;但它稳定吗&#xff1f;效率怎么样&#xff1f;出了问题怎么快速找到原…...

山西家长必看:这家本土机构把港澳升学做成了「保底选项」

山西家长必看&#xff1a;这家本土机构把港澳升学做成了「保底选项」去年太原五中家长群里疯传的案例&#xff1a;理科603分考生通过山西师泽教育的港澳通道&#xff0c;最终拿下香港城市大学计算机系录取。比同分段走内地批次的同学&#xff0c;院校排名直接提升47位。为什么山…...

告别复杂配置!Llama-3.2V-11B-cot镜像一键部署,双卡4090轻松跑通

告别复杂配置&#xff01;Llama-3.2V-11B-cot镜像一键部署&#xff0c;双卡4090轻松跑通 1. 为什么选择这个镜像&#xff1f; 如果你曾经尝试部署过大型视觉语言模型&#xff0c;一定经历过这样的痛苦&#xff1a;下载几十GB的模型文件后&#xff0c;满怀期待地运行代码&…...

FFmpeg实战:5分钟搞定M3U8视频下载与格式转换(含常见错误排查)

FFmpeg实战&#xff1a;高效下载与转换M3U8视频的完整指南 在当今流媒体时代&#xff0c;M3U8格式已成为网络视频传输的主流标准之一。这种基于HTTP Live Streaming(HLS)协议的分段视频格式&#xff0c;能够根据网络状况动态调整视频质量&#xff0c;为用户提供流畅的观看体验…...

MedGemma X-Ray效果展示:AI识别心脏轮廓增大与主动脉钙化

MedGemma X-Ray效果展示&#xff1a;AI识别心脏轮廓增大与主动脉钙化 1. 引言&#xff1a;AI医疗影像的新突破 今天要给大家展示一个让我眼前一亮的AI医疗影像分析工具——MedGemma X-Ray。这不是普通的图像识别软件&#xff0c;而是一个专门针对胸部X光片的智能分析平台&…...

MySQL执行流程详解

1.执行流程 #mermaid-svg-a3ae5cQoH0nS2uhc{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-a3ae5cQoH0nS2u…...

OnmyojiAutoScript:阴阳师全自动托管脚本,每天为你节省2小时游戏时间!

OnmyojiAutoScript&#xff1a;阴阳师全自动托管脚本&#xff0c;每天为你节省2小时游戏时间&#xff01; 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 还在为阴阳师繁重的日常…...

从视频到3D模型:用COLMAP+3D Gaussian Splatting快速重建物体,保姆级数据处理教程

从视频到3D模型&#xff1a;用COLMAP3D Gaussian Splatting快速重建物体&#xff0c;保姆级数据处理教程 在数字内容创作领域&#xff0c;三维重建技术正以前所未有的速度改变着我们记录和呈现世界的方式。想象一下&#xff0c;用手机拍摄一段简单的环绕视频&#xff0c;几小时…...

如何在5分钟内实现抖音批量下载?douyin-downloader开源工具完整指南

如何在5分钟内实现抖音批量下载&#xff1f;douyin-downloader开源工具完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser f…...

轻量级开源媒体播放器:MPC-HC如何成为Windows用户的理想选择

轻量级开源媒体播放器&#xff1a;MPC-HC如何成为Windows用户的理想选择 【免费下载链接】mpc-hc MPC-HCs main repository. For support use our Trac: https://trac.mpc-hc.org/ 项目地址: https://gitcode.com/gh_mirrors/mpc/mpc-hc Media Player Classic Home Cine…...