Pyinstaller打包资源文件

打包基本上都在网上能够查到很多关于打包方式。那么今天将介绍如何将程序中带html, 图片 资源文件打包成exe。这就是我们今天的主题。
附官方文档:https://pythonhosted.org/PyInstaller/spec-files.html

一、首先Pyinstaller打包的命令

Pyinstaller打包的基础命令:pyinstaller Options… myscript.py
pyinstaller基本Options参数如下:
-F:打包后只生成单个exe格式文件;
-D:默认选项,创建一个目录,包含exe文件以及大量依赖文件;
-c:默认选项,使用控制台(就是类似cmd的黑框);
-w:不使用控制台;
-p:添加搜索路径,让其找到对应的库;
-i:改变生成程序的icon图标。

二、资源文件打包

本节以html, icon 两个资源为例进行说明。一般打包执行命令后会生成spec文件,如果不带资源文件,那么在dist文件中找到所打包出来的exe文件便可以正常执行。如带资源文件,则需要进行“包装”一下了。

2.1资源文件说明:

在这里插入图片描述
图片资源文件:testTools.ico
Html资源文件:help.html
调用资源py文件:assetsInfo.py
以上文件都放到同一级目录下,那么我们开始对assetinfo.py进行编写,代码如下:

# -*- encoding:utf-8 -*-


import os
import sys


def resource_path(relative_path):
    if getattr(sys, 'frozen', False):  # 是否Bundle Resource
        base_path = sys._MEIPASS
    else:
        #base_path = os.path.abspath(".")
        base_path = os.path.dirname(os.path.abspath(__file__))
    return os.path.join(base_path, relative_path)

filename = resource_path(os.path.join("help.html"))
winIcon_path = resource_path(os.path.join("testTools.ico"))

def read_html():
    with open(filename, 'r', encoding="utf-8") as f:
        content = f.read()
    return content

class messageInfor:
    def __init__(self):
        pass
    about_infor = "当前版本: v 1.0.0"
    help_infor = read_html()
    windowIcon = winIcon_path

resource_path方法:主要是绑定资源文件,主要是在运行程序中能够将资源文件生成临时文件,存放到windows电脑的tmp目录下。
Read_html():主要读取html文件内容

filename = resource_path(os.path.join("help.html"))
winIcon_path = resource_path(os.path.join("testTools.ico"))

因为填加的是相对路径,因此使用此方式对资源文件的位置进行查找
messageInfor:这个类主要提供我们在编写代码时做为调用资源使用。
对于资源文件的引用就不在进行叙述。

2.2 开始打包:

第一步: 首先使用: pyinstaller -F -i icon_path** **xxx.py命令(因为我们打包需要给程序一个icon图标), 如

在这里插入图片描述
执行完成后,目录会生成build与dist两个文件夹以及spec文件。

第二步:在工程文件中会产生一个spec文件。

在这里插入图片描述
先删除:builddist两个文件,因为此时运行会因为程序找不到资源文件而报错,因此我们需要解决它:
修改spec文件:
在这里插入图片描述
datas目录中增加一个元组, 如: datas=[(‘assets’, ’.’)] 第一项为资源文件所在的文件夹, 第二个值‘.’代表当前路径。

第三步:对spec文件进行编译:命令:pyinstaller -F xxx.spec

在这里插入图片描述
执行完成后会再次生成builddist文件夹
在这里插入图片描述

此时直接进入:dist文件夹,找到已打包出来的exe文件在这里插入图片描述,运行效果,点击Help,打开帮助界面,帮助界面的内容读取的html文件。
在这里插入图片描述

到此结束!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值