Pyinstaller如何将资源文件一起打包至exe中

 

基本原理:Pyinstaller 可以将资源文件一起bundle到exe中,当exe在运行时,会生成一个临时文件夹,程序可通过sys._MEIPASS访问临时文件夹中的资源

官方说明:https://pythonhosted.org/PyInstaller/spec-files.html#spec-file-operation

测试案例功能描述,访问资源文件夹res/a.txt,并打印其内容。实现方法如下:

源码如下,比较简单,resource_path方法说明了如何使用sys._MEIPASS变量来访问临时文件夹中的资源

#coding:utf-8
import sys
import os

#生成资源文件目录访问路径
def resource_path(relative_path):
    if getattr(sys, 'frozen', False): #是否Bundle Resource
        base_path = sys._MEIPASS
    else:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

#访问res文件夹下a.txt的内容
filename = resource_path(os.path.join("res","a.txt"))
print(filename)
with open(filename) as f:
    lines = f.readlines()
    print(lines)
    f.close()

结下来介绍如何生成exe

首先需要生成spec文件,pyi-makespec -F test.py (如果要添加Icon等可以在这里就使用pyi-makespec --icon abc.jpg -F test.py语句生成spec文件)

 编辑spec文件,在datas选项中说明需要将哪些文件加入exe,在零时文件夹中命名成什么

以下图为例,意思将test.py当前目录下的res目录(及其目录中的文件)加入目标exe中,在运行时放在零时文件的根目录下,名称为res

 生成EXE文件,pyinstaller -F test.spec

 

运行生成的EXE,可以看到资源生成的临时文件夹路径

转载于:https://www.cnblogs.com/smiler/p/9725087.html

【python】pyinstaller打包基于PyQt5的程序以及将图片资源文件打包到exe中 一、利用Qt Designer设计你的UI界面(下面是我模仿某音乐播放器设计的一部分的界面) Qt界面里所需要的按钮图片等资源通过ui.qrc文件加载进来(如何写请自行百度) 然后通过Edit StyleSheet写入到各个控件上 到此,你的pyqt 的UI界面完成 二、将设计好的.ui界面通过命令转成.py文件(前提是电脑安装pyqt5和pyinstaller,安装方法请自行... 阅读详情

相关推荐

Mamba vs YOLO:目标检测选型指南(附实际项目对比)

本文深入对比了Mamba和YOLO在目标检测领域的性能差异与应用场景。通过实际项目数据,分析了两者在城市交通监控、工业质检等场景下的表现,提供了详细的选型指南和部署优化建议,帮助开发者根据实时性、精度等需求选择最适合的解决方案。

weixin_29062255的博客 367

Python打包部署工具PyInstaller - 将Python打包成exe应用程序(含flask静态目录)的操作方法

目录一. Pyinstaller 使用指南1.简介2.安装命令初次安装升级查看版本3.打包命令打包成一个exe应用程序打包成一个文件夹二. Pyinstaller实战 - 以我的可视化大屏为例1. 创建?打包.bat 脚本2. 运行?打包.bat 脚本3. 查看 main.exe 应用程序4. 启用 main.exe 应用程序5. 浏览器访问三. 问题总结1. 缺少依赖包? No module named ‘xxx’?2. 无法打开 Flask 的静态目录文件?Pyinstaller 是 Python 的打

web15085181368的博客 1841

ADS使用Smith圆图进行阻抗匹配

在处理RF系统的实际应用问题时,总会遇到一些非常困难的工作,对各部分级联电路的不同阻抗进行匹配就是其中之一。一般情况下,需要进行匹配的电路包括天线与低噪声放大器(LNA)之间的匹配、功率放大器输出(RFOUT)与天线之间的匹配、LNA/VCO输出与混频器输入之间的匹配。匹配的目的是为了保证信号或能量有效地从“信号源”传送到“负载”。 阻抗匹配(impedance matching) 信号源内阻与所接传输线的特性阻抗大小相等且相位相同,或传输线的特性阻抗与所接负载阻抗的大小相等且相位相同,分别称为传输线的输

红茶绿茶和奶茶的博客 3万+

记录一次Pyinstaller 打包

今天给客户打包一份Selenium代码,里面涉及到了Js环境,那么打包之后发现客户电脑无法运行。 解决方案: 在客户电脑上安装nodejs以及对应的包即可

A_I_H_L的博客 579

Playwright Java环境配置避坑指南:浏览器路径、类加载与离线部署

Playwright作为现代端到端测试框架,其Java SDK突破了传统Selenium的Driver管理模式,将Chromium/Firefox/WebKit内核视为可编程运行时资源。其核心原理在于SDK与浏览器二进制分离——Maven仅管理Java字节码,而浏览器需独立下载、校验与沙箱加载。这一设计带来显著技术价值:跨平台一致性、进程隔离安全性及多浏览器并行能力;典型应用场景涵盖Spring Boot集成测试、金融级离线CI/CD、Kubernetes容器化部署及Air-Gapped封闭环境。然而,因J

weixin_32956805的博客 675

Python脚本自动化芯片设计?PyAether实战教程带你玩转EDA

本文通过PyAether实战教程,详细介绍了如何利用Python脚本实现芯片设计自动化。内容涵盖环境搭建、核心对象模型解析,并重点演示了原理图自动生成、参数化单元创建及设计验证流程集成,帮助EDA工程师从重复性手动操作中解放,显著提升设计效率与一致性。

e4f5g6h的博客 1312

Pyinstaller打包工具

本篇博客主要介绍的是pyinstaller在windows下的基本使用和基础避坑 在windows中使用pyinstaller工具打包时会出现一个问题,在打包列表会看到这样的警告信息: django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal302", "gdal30 1", "gdal300", "gdal204", "gdal203", "gdal202", "gdal201", "

有用的话关个注,点个赞,收个藏🫶。 1444

基于资源预测的Agent弹性伸缩:在成本与响应延迟间寻找最佳平衡点

手动伸缩:完全由运维人员人工调整副本数或服务器数量,效率极低,现在基本只用于极小规模的业务。反应式伸缩:基于当前实时监控指标触发伸缩规则,比如CPU利用率超过70%就加2个副本,是目前应用最广泛的方案,典型代表是K8s HPA、KEDA。预测式伸缩:基于历史时序数据预测未来的负载,提前进行伸缩,解决反应式伸缩的滞后性问题,典型代表是AWS Predictive Scaling、阿里云预测式HPA。智能Agent伸缩。

SuperAGI2025 132

Pyinstaller如何将源文件一起添加到打包的exe中,使源文件出现在临时文件中

文章借鉴:Pyinstaller如何将资源文件一起打包至exe中 - darcymei - 博客园 在实际工作中很多时候会将一些用的数据文件放到根目录下,然后用 os.path.dirname(__file__)语句对根目录进行一些访问,但是在pyinstaller生成的exe文件中,涉及到这些代码的功能很多都实现不了,主要原因在于,在运行由pyinstaller生成的exe文件时,系统会在Tenp文件夹下面生成一个_MEI***的一个临时文件,可以在运行主函数的时候添...

u012866222的博客 909

【系统架构设计师】模拟预测试卷十 - 案例分析(完整结构)

本文为系统架构设计师考试模拟试题及参考答案,包含五个专题:质量属性(必答)、信息系统架构设计、嵌入式系统架构设计、云原生架构设计、面向服务架构设计(SOA)。试题一聚焦非功能需求与质量属性映射,如性能、可修改性、一致性等;其余选答题分别涉及分层架构设计(如嵌入式实时控制)、云原生会话管理、服务化治理(如契约设计、熔断策略)等核心架构场景,涵盖战术应用、权衡分析及解决方案设计。参考答案提供关键要点,例如离线借还的冲突解决、服务编排与共享服务的区分、嵌入式硬实时保护的必要性等,适用于备考实战演练。

数据知道的博客 249

uniapp - 超详细 H5 网页利用 uni.downloadFile 下载 URL 文件流并调用浏览器下载功能效果,前台通过请求后端接口获取文件并下载保存到本地(支持电脑PC与手机移动端H5)

uniapph5网页下载文件,uniapp网站下载文件流,uniapp的移动端h5实现接口url文件下载,uniapph5页面在浏览器中如何下载指定url文件流文件并保存到本地,uniapp移动端h5调用后端接口保存文件到本地,uniapph5通过下载后获得临时路径怎么让浏览器弹出下载,uniapp怎么请求接口下载到文件,得到Blob临时路径对象后如何下载到本地,浏览器怎么下载blob对象,uniapp二进制文件流下载,uniapph5中的文件流下载和指定的url下载详细教程,uniappapp移

🏆 前端领域优质创作者 1万+

Pyinstaller打包: 将资源文件或文件夹打包到最后生成的exe中

前提:用pyinstaller打包时部分资源文件可以利用qrc转成py文件来读取,但是有部分文件类型不适用。 原理:Pyinstaller 将资源文件一起打包到exe中。当exe运行时,会生成一个临时文件夹,可通过sys._MEIPASS访问临时文件夹中的资源。 解决方法: 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频

Python学习Q群696455390 1万+

华为OD机试真题 新系统 9月16号 【统计特殊数字】

华为OD新系统机试真题【统计特殊数字】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【统计特殊数字】。

qq_45776114的博客 763

python pyinstaller 将资源文件打包进exe

dad

suyancc的博客 1831

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python打包exe带资源_Pyinstaller如何将资源文件一起打包至exe中

基本原理:Pyinstaller 可以将资源文件一起bundle到exe中,当exe在运行时,会生成一个临时文件夹,程序可通过sys._MEIPASS访问临时文件夹中的资源官方说明:https://pythonhosted.org/PyInstaller/spec-files.html#spec-file-operation测试案例功能描述,访问资源文件夹res/a.txt,并打印其内容。实现方法...

weixin_39660408的博客 1175

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【Python】Pyinstaller打包exe(包括打包资源文件 绝不出错版)

Pyinstaller打包exe(包括打包资源文件 绝不出错版)

Mike Zhou的博客 2234

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

python资源文件嵌入exe_Pyinstaller如何将资源文件一起打包至exe中

基本原理:Pyinstaller 可以将资源文件一起bundle到exe中,当exe在运行时,会生成一个临时文件夹,程序可通过sys._MEIPASS访问临时文件夹中的资源官方说明:https://pythonhosted.org/PyInstaller/spec-files.html#spec-file-operation测试案例功能描述,访问资源文件夹res/a.txt,并打印其内容。实现方法...

weixin_39688687的博客 718

python用pyinstaller将资源文件打包成单独exe+添加图标

1.打包时将资源文件打包进单独exe exe本身就是一个压缩包,运行时会将资源文件解压到系统的temp目录,而不是相对exe自身的目录,所以会出现文件找不到的情况(位置发生变化了),要做的就是找到文件的真实路径,下面的函数可以将相对路径转为真实路径,if 在判断当前运行环境是不是打包后的环境,sys._MEIPASS pycharm 会有警告,不影响运行。 def resource_path(relative_path): if getattr(sys, 'frozen', False):

qq_46269068的博客 2835

Pyinstaller打包整个项目(打包资源文件+修改exe文件logo)

Pyinstaller打包整个项目(打包资源文件+修改exe文件logo)

weixin_44005631的博客 5350
上一篇: Python GUI
下一篇: 运行yum时出现/var/run/yum.pid已被锁定,PID为xxxx的另一个程序正在运行的问题解决...
dddp75921
博客等级 码龄12年 9粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值