本文收录于 《一起学Python趣味编程》专栏,从零基础开始,分享一些Python编程知识,欢迎关注,谢谢!
文章目录
一、前言
本文介绍如何使用PyInstaller工具把Python代码打包成exe可执行文件。
这样的话,我们可以把开发完成的Python程序代码,通过exe可执行文件的方式,分享给其他人。
(PS:如果对方是windows系统,则需要在windows环境下打包;如果对象是macOS系统,则需要在macOS环境下打包。否则,对方无法正常安装。)
-
什么是Python?
Python是由荷兰人吉多·范罗苏姆于1990年代初设计的一门编程语言,应用领域非常广泛,尤其在数据分析、人工智能领域,已经成为最受欢迎的程序设计语言之一,比较适合新手学习。
这门编程语言之所以叫Python,意为大蟒蛇,是因为当时有一个电视喜剧《蒙提·派森的飞行马戏团》(Monty Python’s Flying Circus)在热播,很受大家喜欢。
PS:Python语言标准库官方使用手册:https://docs.python.org/zh-cn/3/library/
-
什么是PyInstaller?
PyInstaller是一个在Windows、macOS等平台下将Python程序打包为独立可执行文件的工具,用于在未安装Python的平台上执行Python编写的应用程序。
PyInstaller官网地址:https://pyinstaller.org/en/stable/
二、安装PyInstaller
下面开始安装PyInstaller打包工具。
安装之前,确认一下当前项目对应的python解释器名称(或者开发环境名称)以及使用的python版本信息。
打开开发工具PyCharm,在界面的右上角打开settings中窗口。
之后,在Project 》Python Interpreter中,查看解释器名称和python版本信息。
(PS:建议使用python3.6.x版本,否则打包会报错。)
比如,这里Python解释器名称(或者开发环境名称)为“myblog”,python版本为3.6.13。
之后,在PyCharm界面左下角,打开终端命令行界面,使用命令conda activate + 环境名称,切换conda环境为“myblog”。(PS:默认为base开发环境)
# 切换开发环境
conda activate myblog
之后,使用命令pip install pyinstaller,开始安装PyInstaller打包工具。
# 安装PyInstaller打包工具
pip install pyinstaller
如果出现"Successfully installer"字样,则说明安装成功了。
另外,也可以使用查看pyinstaller版本信息命令,确认是否安装成功。
pyinstaller --version
至此,我们在myblog开发环境中,PyInstaller工具安装完成了。
三、使用PyInstaller打包
PyInstaller打包工具安装完成后,下面介绍如何使用PyInstaller进行打包。
这里以“猫和老鼠”游戏打包为示例,进行介绍。
如图所示,该游戏在myBlog项目工程中,对应的Python文件名称为tomJerry.py。
首先,打开Pycharm的终端命令行窗口。
之后,输入命令conda activate myblog,把开发环境从base切换到myblog。
conda activate myblog
之后,检查一下当前开发环境中,安装的python版本信息。(PS:建议使用python3.6.x版本,否则打包会报错。)
python --version
之后,运行打包命令。
pyinstaller -w -F tomJerry.py
- pyinstaller命令参数说明:
-F 代表打包成一个单独exe文件,默认是打包成一个文件夹;
-w 代表打包程序运行后隐藏控制台窗口;
如图,如果控制台输出"Building EXE …successfully"字样,则说明打包完成了。
四、验证打包是否成功
打包完成后,我们验证一下打包后的程序是否可以正常运行。
首先,我们会发现在项目的目录下面会出现一个dist目录,该目录下面会有一个打包后生成的tomJerry.exe文件。
之后,点击运行tomJerry.exe文件,出现错误提示。
从提示信息可知,程序找不到图片。所以,我们需要把图片拷贝到exe文件同级目录下面。
之后,我们再次点击运行tomJerry.exe文件,程序运行成功,出现猫和老鼠游侠界面。
五、增加启动闪屏动画Splash
下面介绍在exe可执行文件启动时,如何增加启动闪屏动画Splash。
Python pyi_splash是一个用于改善Python程序启动体验的库,它通过在程序启动时显示一个闪屏动画来减少用户等待时的焦虑感。这个库特别适用于那些使用Pyinstaller打包的程序,当程序运行速度较慢或界面加载时间较长时,pyi_splash可以在主界面加载完成前显示一个闪屏动画,从而提升用户体验。
5.1. 首先,在代码中头部添加启动闪屏代码以及splash.png启动图片。
启动闪屏代码如下:
# splash程序启动闪屏动画
try:
import pyi_splash
import time
for i in range(100):
text = f"游戏加载中………{i}%"
time.sleep(0.1) # 模拟一个速度比较慢的加载过程
pyi_splash.update_text(text) # 更新显示的文本
pyi_splash.close() # 关闭闪屏
except ImportError:
pass
PS:注意,启动图片必须时png格式的。
5.2. 之后,使用pyi-makespec,生成Spec文件。
pyi-makespec -w -F --splash splash.png tomJerry.py
5.3. 之后,修改对应的Spec文件。
修改对应的Spec文件,增加相关代码。
a = Analysis(...)
splash = Splash('splash.png',
binaries=a.binaries,
datas=a.datas,
text_pos=(10, 50), #textposition
text_size=12, #text size
text_color='black') #text color
exe = EXE(pyz,
a.scripts,
splash, # <-- both, splash target
splash.binaries, # <-- and splash binaries
...)
5.4. 之后,使用pyinstaller命令,生成可执行文件。
pyinstaller -w -F --splash splash.png tomJerry.spec
5.5. 运行exe文件,查看运行效果。
之后,在工程目录dist文件下面,找到exe文件。
之后,点击运行exe文件,查看运行效果。
六、总结
以上介绍了如何使用PyInstaller打包工具把Python代码打包成EXE可执行文件。希望对大家有帮助,谢谢关注。
(PS:本文示例代码,猫和老鼠游戏下载链接:https://blog.csdn.net/u012171005/article/details/140042952)
如果您对文章中内容有疑问,欢迎在评论区进行留言,我会尽量抽时间给您回复。如果文章对您有帮助,欢迎点赞、收藏。您的点赞,是对我最大的支持和鼓励,谢谢 :-)