zoukankan      html  css  js  c++  java
  • 五、python小功能记录——打包程序

    这篇文章只讲pyinstaller

    场景一  只打包单个文件

    场景二  需要打包资源文件

    场景三  资源文件中有逻辑程序,不能采用场景二方式

    使用pyinstaller打包Python程序

    场景一  只打包单个文件

    安装工具 :pip3 install pyinstaller

    在Python程序文件夹上(不点进去)按住shift并且右键,在弹出的选项中点击"在此处打开命令行窗口"或者“在此处打开PowerShell窗口”,CMD进来也可以

    打包命令:pyinstaller -F -w (-i icofile) filename

    filename表示你的Python程序文件名

    -w 表示隐藏程序运行时的命令行窗口(不加-w会有黑色窗口)

    括号内的为可选参数,-i icofile表示给程序加上图标,图标必须为.ico格式

    icofile表示图标的位置,直接放在程序文件夹里面,打包的时候直接写文件名

    最简单例如:pyinstaller -F test.py

    输入完成,按回车自动打包

    如果是很多文件组成的系统,只要用pyinstaller -F -w 入口主程序.py 即可

    打包的exe在dist里面

     

    场景二  需要打包资源文件 官网


    先执行了打包命令,目录下会出现{你的py文件名}.spec,截图中其它文件请忽略

     修改.spec,使其包含其它静态资源文件

    就是改datas,数组格式,括号内第一个参数是文件名,第二个是文件夹名

     执行 pyinstaller WebOfficeInstall.spec 将把文件打包进exe里

    场景三  资源文件中有逻辑程序,不能采用场景二方式

    主要是解决逻辑程序中的路径问题

    通过这个方法可以把 音频,视频,图片,文本,压缩包,配置文件,脚本 等各种文件打包进exe中。
    运行时会自动解压到当前目录,如果程序需要调用这些文件时,就可以调用了。

    1. 转换为Base64 数据

    这里有两个网站, 都是可以将任意文件转换为 Base64 数据文本的。
    进到下面这其中一个网站中, 分别将你的文件进行转换, 然后复制得到的数据。

    https://www.giftofspeed.com/base64-encoder/
    https://www.zhangxinxu.com/sp/base64.html

    2.在程序中使用生成的数据

    首先呢,创建一个.py自建模块,在里面创建变量,分别把从网站得到的Base64数据以字符串的形式粘贴到变量里面。

    注意:
    1. 变量的类型必须是 字符串。
    2. 一个变量的base64数据 只能放在一行,不要有分行。

    有时候转的文件较大,粘贴的时候显得很卡,也没办法

    例子:
    下面是一个简单的运用,我创建了一个叫“get_file.py”的程序; 这个程序运行时,import了刚才创建的自建模块 DataFile,然后再把将文件写入到指定的位置。程序运行末尾结束了,就删除这些文件。

     1 get_file.py
     2 
     3 import os
     4 import base64
     5 import DataFile          # 导入自建模块 "DataFile.py"
     6 
     7 
     8 def write_file(data, route):
     9     get_file = base64.b64decode(data)        # 将base64数据进行解析
    10 
    11     with open(route, 'wb') as f_Obj:        # 输出文件到指定位置
    12         f_Obj.write(get_file)
    13 
    14 #-----调用函数,传入对应的 base64数据 和 输出文件的位置,生成依赖的资源文件-----#
    15 write_file(DataFile.text, "./测试文本.txt")
    16 write_file(DataFile.zip_pack, "./测试压缩包.zip")
    17 write_file(DataFile.picture, "./测试图片.jpg")
    18 
    19 
    20 #-----程序运行区域-----#
    21 print("Hello world !")
    22 input()  # 暂停
    23 
    24 
    25 #-----运行结束后删除目录下的依赖文件-----#
    26 os.remove("./测试文本.txt")
    27 os.remove("./测试压缩包.zip")
    28 os.remove("./测试图片.jpg")

    3.打包

    pyinstaller -F test.py

    参考:

    https://blog.csdn.net/COLDRAIN_END/article/details/104385472

    https://blog.csdn.net/jayden_gu/article/details/94134409

  • 相关阅读:
    Windows Store App 主题动画
    Windows Store App 过渡动画
    Windows Store App 控件动画
    Windows Store App 近期访问列表
    Windows Store App 文件选取器
    Windows Store App 访问应用内部文件
    Windows Store App 用户库文件分组
    Windows Store App 获取文件及文件夹列表
    Windows Store App 用户库文件夹操作
    Windows Store App 用户库文件操作
  • 原文地址:https://www.cnblogs.com/cvol/p/10688437.html
Copyright © 2011-2022 走看看