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

  • 相关阅读:
    理解SQL SERVER中非聚集索引的覆盖,连接,交叉和过滤
    TSQL查询进阶流程控制语句
    效率最高的Excel数据导入(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)
    SQL Service自定义数据类型
    理解SQL SERVER中的逻辑读,预读和物理读
    TSQL查询进阶深入理解子查询
    SQL查询入门(下篇)
    使用SQL进行递归查询
    利用 sys.sysprocesses 检查 Sql Server的阻塞和死锁
    灵活运用 SQL SERVER FOR XML PATH
  • 原文地址:https://www.cnblogs.com/cvol/p/10688437.html
Copyright © 2011-2022 走看看