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协议,转载记得加出处,否则视为侵权。