基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次
文章目录
- 基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次
-
- 一、前言
- 二、环境
- 三、环境配置
- 四、图片处理
-
- 1、将所有图片都转换成py文件
- 2、导入py文件,将py解码下载,用完即删
- 五、打包格式
- 六、完结撒花
一、前言
遍历了csdn博客之后,发现貌似对,很多博客如何带图片打包成exe描述做到最后,我有些难受,我记录一下我最终完成的吧。
我默认,需要打包图片的兄弟,都下载了Anconda+Pycharm
二、环境
基于Anconda+Pycharm环境
pyinstaller以及本身需要的包
三、环境配置
如果还没下载Pycharm和Anconda可以参考这个博客:Anaconda3和pycharm的下载指南
下载pyinstaller库 :pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple/
四、图片处理
1、将所有图片都转换成py文件
import base64
import os
'''
将图片文件,比如图标,背景转换成py文件便于打包
'''
def pic2py(picture_names, py_name):
write_data = []
for picture_name in picture_names:
filename = picture_name.replace('.', '_')
with open("%s" % picture_name, 'rb') as r:
b64str = base64.b64encode(r.read())
# 注意这边 b64str 一定要加上.decode()
write_data.append('%s = "%s"\n' % (filename, b64str.decode()))
with open(f'./../Images/{py_name}.py', 'w+') as f:
for data in write_data:
f.write(data)
# 需要转码的图片:
os.chdir('./../Images')#路径转为图像所在路径
pics = ['Start.jpg','logo.ico','begin.jpg']#将你的图片都输入进去
# 将pics里面的图片写到 image.py 中
pic2py(pics, 'images')
print("转码完成...")
这时候,就会在当前目录输出一个images.py文件,图片就保存在这里
2、导入py文件,将py解码下载,用完即删
先导入库
在你每一个用到图片的地方按照如下模版修改
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLmdDZzEjZ1gTOwEjY3YmNiN2MmRTOkBTO3EzY5YDMkJ2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
begin_jpg,就是在py文件中,begin.jpg转码时保存的值,解码它并写出即可
五、打包格式
搞成这样子,一个主入口和ico在外面,其余都弄在一个个文件夹里面
输入:
pyinstaller -F -w -i logo.ico main.py
- 注:记得将位置转到当前目录在输入该指令,并且确保确实安装pyinstaller了,我是在虚拟环境中安装的,所以当时就在Anconda中输入
基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次基于Pyinstaller库将Python项目包括 图片打包exe方法,本人已经实践多次
六、完结撒花
打包如下,exe文件就保存在dist文件夹
真的是步骤很短