Python的pyinstaller打包多个python文件加图片(避坑)

1. 图片处理

 项目里有个图片。我们可以用把图片转码成Python文件的方法来添加进打包中。

直接上转换用的代码:

import base64
import tkinter.messagebox as msgbox
def picture_to_py(pic_name):
    convert_pic_past = open("%s" % pic_name, 'rb')  # 这里传入要转换的图片
    base64_convert_str = base64.b64encode(convert_pic_past.read())  # base64读取(字符串)
    convert_pic_past.close() # 关闭读取
    convert_write_data = 'img = "%s"' % base64_convert_str.decode() # 处理
    a = open('%s.py' % pic_name.replace('.', '_'), 'w+')
    a.write(convert_write_data)
    a.close()

if __name__ == '__main__':
    picture = ["PCBico.png"]  # 写入你要转换的文件名,建议把该代码保存到与转换图片相同路径下
    for x in picture:
        picture_to_py(x)
    msgbox.showinfo("tip", "convert successfully.")

注意这里要安装base64库和tkinter库。其中base64库是大多数python编辑器内置的库,不必再安装。转换成功会弹出提示框显示"convert successfully."

别忘记在你的项目中开头导入处理创建的图片py文件:

import base64, os
from PCBico_png import img as img_pic
img_use_pic = open(r'C:\Users\ASUS\AppData\Local\Temp\PCBico_png', 'wb')  # 创建临时使用图片文件,这里放在了C盘的temp文件夹里
img_use_pic.write(base64.b64decode(img_pic))  
img_use_pic.close()

我这里将临时使用图片文件创建在了电脑的temp缓存文件夹里。

然后在文件末尾加上移除图片文件的代码:

os.remove(r'C:\Users\ASUS\AppData\Local\Temp\PCBico_png')  # 删除图片文件

这边是相当于创建了一个临时文件。(注意,此处的路径是我的电脑路径,如果要使用请更换成你的路径)

2. 打包部分

 首先打开cmd,

 

cd 到你要打包文件的目录。

然后输入pyinstaller打包代码:

pyinstaller -F 此处替换你要打包的主文件 -p 此处填主文件关联的py文件 -p 你转换的图片py文件 -w

注意: -F 是打包成单个exe文件,-p是补充的py文件,-w是取消exe运行时的命令提示符。

没有安装pyinstaller库的在cmd中输入:

pip install pyinstaller

来下载pyinstaller库。

弹出下图提示就是打包好了。

 然后把打包好的文件从pyinstaller生成出来的dist文件夹中拖出来,把生成出来的build文件夹删掉就可以用了。

                                                                                  cc协议,转载记得加出处,否则视为侵权。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值