博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pyinstaller如何将资源文件一起打包至exe中
阅读量:6957 次
发布时间:2019-06-27

本文共 988 字,大约阅读时间需要 3 分钟。

 

基本原理: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 sysimport 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,可以看到资源生成的临时文件夹路径

转载地址:http://sdmil.baihongyu.com/

你可能感兴趣的文章
《饥饿的盛世》读后感
查看>>
你可能不知道的 css 内容块
查看>>
SourceTree 教程文档(安装并设置SourceTree)
查看>>
solr6.6教程-基础环境搭建(二)
查看>>
C# WPF 低仿网易云音乐(PC)Banner动画控件
查看>>
提交自己的包到bower、npm中
查看>>
详解 JavaScript 的私有变量
查看>>
网站建设在“互联网+”时代的发展趋势
查看>>
脚本语言不行?JavaScript 重写 Office 365 已进入尾声
查看>>
日志框架 - 基于spring-boot - 设计
查看>>
R语言基础操作①
查看>>
安装 PrestaShop 1.6 - 关于快速安装指南
查看>>
ecshop中ajax的调用原理
查看>>
速查笔记(Linux Shell编程<上>)
查看>>
更换手机设备时如何同步迁移便签内容?
查看>>
Linux进程间通信之共享内存
查看>>
模拟返回的后台数据实现统计图
查看>>
《Linux命令行与shell脚本编程大全》第二十六章 一些有意思的脚本
查看>>
设置文字旋转角度
查看>>
Spring_DI_XML_02
查看>>