使用PyInstaller工具将Python程序打包成可执行(EXE)文件。将Python程序打包成EXE的好处之一是,它使得你的应用程序更容易在没有Python解释器的系统上运行,同时还提供了更好的用户体验。
安装好 Pyinstaller就可以愉快的打包了,这里只需要一条命令即可。
假如 Python 程序的主入口文件是xx.py,那么你的打包命令就是:
pyinstaller xx.py
执行成功后,将会生成两个文件夹:build 和 dist 。
示例代码
下边的代码使用到了PySimpleGUI库,需要先安装该库,安装命令
pip install pysimplegui
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@文件 :test.py
@说明 :使用Pysimplegui实现一个简单的窗口
@时间 :2023/10/13 09:44:46
@作者 :aliha
@版本 :1.0
'''
import PySimpleGUI as sg
layout = [
[sg.Text('请输入内容:')],
[sg.InputText()],
[sg.Submit('确认'), sg.Cancel('取消')]
]
window = sg.Window('Demo示例', layout)
event, values = window.read()
text_input = values[0]
sg.popup('你输入了:', text_input)
执行打包
运行打包命令
pyinstaller test.py
最后一行提示 … completed successfully就是成功了,别的不认识也没关系。
打包结果解读
我们可以清楚的看到 test.py 的同级目录下多出来两个文件夹和一个文件:build,dist 和 test.spec。
• dist:这个是我们打包出来的程序文件;
• build:这个文件夹是程序打包时构建过程生成的,没什么用;
• test.spec:这个文件是打包的中间配置文件。
打包效果展示
点击 dist 文件夹内的 test.exe 就可以运行程序,具体效果如下⬇️:
打包GUI程序
示例代码都是 GUI 程序 ,打包后运行时带一个黑框,体验太糟糕,做掉它。
假如你的 Python 程序的主入口文件是xx.py,那么你的打包命令就是:
Pyinstaller -w xx.py
注意:如果是和-F参数一起使用,应该是-Fw,而不是-F -w。
示例代码
本代码使用到了PySimpleGUI库,需要先安装该库,安装命令
pip install pysimplegui
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@文件 :test.py
@说明 :使用Pysimplegui实现一个简单的窗口
@时间 :2023/10/13 09:44:46
@作者 :aliha
@版本 :1.0
'''
import PySimpleGUI as sg
layout = [
[sg.Text('请输入内容:')],
[sg.InputText()],
[sg.Submit('确认'), sg.Cancel('取消')]
]
window = sg.Window('Demo示例', layout)
event, values = window.read()
text_input = values[0]
sg.popup('你输入了:', text_input)
执行打包
运行打包命令
pyinstaller -Fw test.py
打包效果展示
点击 test.exe 就可以运行程序,具体效果如下⬇️:
可以看到,命令行窗口就隐藏掉了
设置程序图标
假如你的 Python 程序的主入口文件是xx.py
图标文件完整路径是x:\xx\xx.ico那么你的打包命令就是:
pyinstaller -i x:\xx\xx.ico xx.py
在线图片转 ICO:[https://convertio.co/zh/png-ico/]
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@文件 :test.py
@说明 :使用Pysimplegui实现一个简单的窗口
@时间 :2023/10/13 09:44:46
@作者 :aliha
@版本 :1.0
'''
import PySimpleGUI as sg
layout = [
[sg.Text('请输入内容:')],
[sg.InputText()],
[sg.Submit('确认'), sg.Cancel('取消')]
]
window = sg.Window('Demo示例', layout)
event, values = window.read()
text_input = values[0]
sg.popup('你输入了:', text_input)
执行打包
运行打包命令:
pyinstaller -i icon.ico test.py
:这里icon.ico与test.py在同一个目录下,所以直接写文件名称即可。
Python 程序打包—使用 PyInstaller 打包 EXE
安装 PyInstaller:
通过以下命令安装 PyInstaller:
pip install pyinstaller
进入项目目录:
在命令行中,进入 Python 项目所在的目录。
运行 PyInstaller:
使用以下命令将 Python 脚本转换为 EXE 文件
pyinstaller your_script.py
生成单文件 EXE:
若要生成单个 EXE 文件,使用 --onefile 选项:
pyinstaller --onefile your_script.py
自定义 EXE 文件名:
使用 --name 选项自定义生成的 EXE 文件名称:
pyinstaller --onefile --name your_custom_name your_script.py
处理依赖关系:
PyInstaller 通常会自动处理脚本的依赖关系,但可以使用 --add-data 和 --add-binary 选项手动添加依赖项。
测试 EXE 文件:
在“dist”目录中找到生成的 EXE 文件,并确保它在没有 Python 解释器的环境中正常运行。
附加注意事项:
提供了解决一些常见问题的方法,如处理文件路径问题和 DLL 文件缺失。