安装pyinstaller
pip install pyinstaller
在文件对应位置命令行执行
pyinstaller -F -w -i 图标名.ico 主文件名.py -p 其他文件.py
-w 程序在执行时不会打开黑窗口
打包多个文件夹下的多个文件
pyinstaller [主文件] -p [其他文件1] -p [其他文件2] --hidden-import [自建模块1] --hidden-import [自建模块2]
打包图片
在打包之前把图片转化成py文件,再使用上述方法打包
import base64
def pic2py(picture_names, py_name):
"""
将图像文件转换为py文件
:param picture_name:
:return:
"""
write_data = []
for picture_name in picture_names:
filename = picture_name.replace('.', '_')
open_pic = open("%s" % picture_name, 'rb')
b64str = base64.b64encode(open_pic.read())
open_pic.close()
# 注意这边b64str一定要加上.decode()
write_data.append('%s = "%s"\n' % (filename, b64str.decode()))
f = open('%s.py' % py_name, 'w+')
for data in write_data:
f.write(data)
f.close()
if __name__ == '__main__':
pics = ["logo_2.png", "logo.png"]
pic2py(pics, 'memory_pic') # 将pics里面的图片写到 memory_pic.py 中
print("ok")
完成后会在当前路径下生成memory_pic.py文件
logo_2_png = "iVBORw0KGgoAAAANSUhEUgAAAXcAAABgCAIA..."
logo_png = "iVBORw0KGgoAAAANSUhEUgAAAX0AAAClCAYAAACwYy2nAAAAAXNSR..."
在自己程序中使用图片
from memory_pic import *
import base64
def get_pic(pic_code, pic_name):
image = open(pic_name, 'wb')
image.write(base64.b64decode(pic_code))
image.close()
# 在路径下生成logo.png文件
get_pic(logo_png, 'logo.png')