目录
pyinstaller模块打包exe(无图片或其他文件打包版)
第一步 安装pyinstaller模块:
第二步 找到需要打包的主程序文件夹
第三步 打包exe文件
第四步 确认exe文件是否可以打开
pyinstaller模块打包exe(有图片打包版--方法一)
第一步 安装pyinstaller模块:
第二步 找到需要打包的主程序文件夹
第三步 打包exe文件
第四步 确认exe文件是否可以打开
pyinstaller模块打包exe(无图片或其他文件打包版)
第一步 安装pyinstaller模块:
在VScode中安装模块:pip install pyinstaller(可以用这个,也可以用下面这个)
pip install -U pyinstaller
安装成功后,长这样:
第二步 找到需要打包的主程序文件夹
命令行cd到Python主程序文件所在的目录
cd 你的绝对文件路径
第三步 打包exe文件
直接进入cmd行,输入以下 命令!!
注意:这里已经进到了主文件夹,所以不是路径了,是你的文件名就行)
pyinstaller -F -w 你的文件名.py
安装成功后长这样:
第四步 确认exe文件是否可以打开
然后就可以去dist文件夹打开你的exe了!!!
打开后长这样
pyinstaller模块打包exe(有图片打包版--方法一)
第一步 安装pyinstaller模块:
在VScode中安装模块:pip install pyinstaller(可以用这个,也可以用下面这个)
pip install -U pyinstaller
安装成功后,长这样:
第二步 找到需要打包的主程序文件夹
命令行cd到Python主程序文件所在的目录
cd 你的绝对文件路径
第三步 打包exe文件
- 第一种方法:写个base64的程序,把图片转成.py文件用于引用()
使用base64编码方式对程序中所使用的图片进行编码操作
import base64
def pic2py(picture_names: list, 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'{py_name}.py', 'w+') as w:
for data in write_data:
w.write(data)
# 需要转码的图片:
pics = ["./pic.png"]
# 将pics里面的图片写到 image.py 中
pic2py(pics, 'image')
程序会生成一个image.py的python脚本,里面包含了图片。
然后,在主程序中导入image.py脚本引用,将图片编码在转成图片即可,引用方式如下:
from image import *
# 引用示例,pic.png,注意 转码后名字是pic_png
self.root.iconbitmap(image.pic_png)
第二种方法:找个图片转base64的网站,把图片一张一张扔进去https://base64.guru/converter/encode/image 转成base64的码,直接赋值或者复制粘贴到源代码
在源代码中写入image的Base64码即可:
image_data = {
"xx.png": "Base64码"
}
original_image_upload = tk.PhotoImage(data=image_data["xx.png"])
到此,知道了图片的引用方式,打包py文件就简单了,
直接进入cmd行,输入以下 命令!!
注意:这里已经进到了主文件夹,所以不是路径了,是你的文件名就行)
pyinstaller -F -w 你的文件名.py
安装成功后长这样:
第四步 确认exe文件是否可以打开
然后就可以去dist文件夹打开你的exe了!!!
打开后长这样
pyinstaller模块打包exe(有图片打包版--方法二)
第一步 安装pyinstaller模块:
在VScode中安装模块:pip install pyinstaller(可以用这个,也可以用下面这个)
pip install -U pyinstaller
安装成功后,长这样:
第二步 找到需要打包的主程序文件夹
命令行cd到Python主程序文件所在的目录
cd 你的绝对文件路径
第三步 打包exe文件
使用
pyi-makespec
optionsname.py 创建新的python文件
pyi-makespec options 你的文件.py
具体可以参考这篇文章:python - Pyinstaller and --onefile: How to include an image in the exe file - Stack Overflow
根据文档的描述,有两个不同的命令可以创建规范文件(spec file):
pyinstaller options 你的名字.py
这个命令会自动创建一个规范文件,文件名通常是
myscript.spec
。PyInstaller在打包应用程序时会使用这个自动生成的规范文件。
pyi-makespec options name.py [other scripts ...]
这个命令是专门用于创建规范文件的,不会直接打包应用程序。通过这个命令,可以显式地创建并查看规范文件的内容。
总的来说:
如果只想简单地将Python脚本打包为可执行文件,使用
pyinstaller options.. myscript.py
这个命令就可以了,它会自动处理规范文件。如果需要自定义规范文件,比如添加数据文件、运行时库等,那么可以先使用
pyi-makespec
命令创建规范文件,修改后再执行pyinstaller进行打包。
在options.spec文件里创建以下内容:
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['options', '你的文件.py'],
pathex=[],
binaries=[],
datas=[('你的数据路径', '数据名称')],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name='options',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)
coll = COLLECT(
exe,
a.binaries,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='options',
)
在python源文件里加入:
最后直接进入cmd行,输入以下 命令!!
pyinstaller --onefile --windowed --add-data "picture1.jpeg:." --add-data "picture2.png:." your_file.py
注意:这里已经进到了主文件夹,所以不是路径了,是你的文件名就行)
安装成功后长这样:
第四步 确认exe文件是否可以打开
然后就可以去dist文件夹打开你的exe了!!!
打开后长这样
Pyinstaller的打包可选参数说明:
使用格式:pyinstaller -F -w -i x.ico xxx.py
pyinstaller的参数讲解:
第一个参数(必选):
-F:生成单个可执行文件
-D:生成多个可执行文件
第二个参数:
-c:文件执行时携带cmd黑窗口(默认)
-w:文件执行时不启用cmd黑窗口
第三个参数:
-p:自定义需要加载的类路径(基本不用)
第四个参数:
-i x.ico:为可执行文件添加图片,此处x用绝对路径
第五个参数(必选):
xxx.py:需要打包的py文件,xxx为主程序文件名
运行后会生成:
build:内含生成的项目文件
dist:内含生成的exe可执行文件
xxx.spec:打包过程日志
打包图片和音频的方法:
因使用pyinstaller打包exe时,不能打包图片和音频,解决方法:
采用base64动态生成图片和音频