当前位置:   article > 正文

Pyinstaller打包资源文件_pyinstall 打包html

pyinstall 打包html

打包基本上都在网上能够查到很多关于打包方式。那么今天将介绍如何将程序中带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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

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

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

因为填加的是相对路径,因此使用此方式对资源文件的位置进行查找
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文件。
在这里插入图片描述

到此结束!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/657313
推荐阅读
相关标签
  

闽ICP备14008679号