Pyinstaller如何将资源文件一起打包至exe中
2018-09-29 17:53
288 查看
基本原理: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-8import 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,可以看到资源生成的临时文件夹路径
相关文章推荐
- 如何将Debug文件夹下的资源打包成一个EXE文件直接执行
- Python 3.6如何快速的利用Pyinstaller把.py文件打包成.exe的应用程序
- 如何将Debug文件夹下的资源打包成一个EXE文件直接执行
- python程序使用pyinstaller打包成单一.exe文件后,如何的到.exe文件所在目录?
- 如何利用Python2.7、py2exe、PyInstaller-2.1将*.py打包成*.exe,再利用Inno Setup Compiler封装成windows安装文件
- 如何将EXE和资源文件打包成一个EXE
- 【tkinter】python工具pyinstaller打包生成exe文件非常大的原因分析(openpyxl)openpyxl
- PyInstaller 打包 Python 源码为 exe 可执行文件
- Pyinstaller将python脚本打包成exe文件
- pyinstaller 打包python文件成.exe程序
- 【转载】利用MAVEN打包时,如何包含更多的资源文件
- 【转载】用PyInstaller把Python代码打包成单个独立的exe可执行文件
- matlab中如何封装打包EXE文件
- 如何把dll文件打包进exe文件中,谢谢~
- 利用MAVEN打包时,如何包含更多的资源文件(src/main/java,src/main/resources)
- 如何将Py文件打包为exe
- 使用pyinstaller工具打包python项目代码生成exe文件
- VB-控件注册 - 利用资源文件将dll、ocx打包进exe文件
- 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
- 使用PyInstaller将Python程序打包成一个单独的exe文件