因为最近要用到 Python 脚本,所以自己学习了一下,顺便学习如何把它打包成 .exe 可执行文件,达到双击运行的效果,网上找了资料,保存下来学习用,原文出处:https://baijiahao.baidu.com/s?id=1606400855559470971&wfr=spider&for=pc
大家都知道,Python是一种脚本语言,也就是解释型的语言,需要解释器来进行解释以后才可以执行,而Python源代码需要在Python虚拟机上面运行,但是我们做好的程序,不可能给用户使用的时候还让他安装一个Python环境,所以今天我们讲解如何将Python程序打包为exe可执行文件。提示: 以下的教程都是再有Python环境的基础上的,如果没有安装,请先参考:Python安装以及环境变量配置
一、安装pyinsatller
打开命令行窗口,输入如下指令:
pip3 install pyinstaller
然后静待pyinstaller自动安装好
此外还要安装好 win32api ,可以用命令 pip install pypiwin32 或 pip3 install pypiwin32 或 python -m pip install pypiwin32 直接下载安装,如果没有安装好这个,生成的exe文件的时候,会报错,是无法生成 .exe 文件的,此外还要注意win32api的版本要跟你的Python编译器的版本一致,不然安装 win32api 时会找不到 python 注册表
二、使用pyinstaller打包Python程序
①在你的Python程序文件夹上(不点进去)按住shift并且右键,在弹出的选项中点击"在此处打开命令行窗口"或者“在此处打开PowerShell窗口” 或者先进入命令行窗口,然后使用cd指令进入程序文件夹
②输入以下指令,开始打包
pyinstaller -F (-i icofile) -w filename
filename表示你的Python程序文件名
-w 表示隐藏程序运行时的命令行窗口(不加-w会有黑色窗口)
括号内的为可选参数,-i icofile表示给程序加上图标,图标必须为.ico格式
icofile表示图标的位置,建议直接放在程序文件夹里面,这样子打包的时候直接写文件名就好
个人实操说明:这里我实际操作的时候添加图标就无法生成,不加图标按下面的命令生成就可以,具体原因待以后补充
如果我要添加图标就报下图的错误,这里我已经安装好了WIN32api了的,具体造成错误原因没还没找到
补充:
上面说的无法生成 ico 图标问题,已经解决,测试是因为我的文件名后缀没有输入,要先生成 ico 图标,再生成 exe 运行程序的,测试指令如下
输入完成,按回车,就会开始自动打包了,第一次打包过程可能比较缓慢
输入示例:
pyinstaller -F-i tello.ico -w love.py
然后我们进入到程序目录里面会再看到一个名称为dist目录,打包好的exe程序就在里面
注意:如果原本的程序中使用到了相应的资源,需要复制到该目录下,否则程序会无法运行
比如我这里在程序中使用到了love.png这个图,所以就需要将该文件放到dist目录下
最后补充一个 pyinstaller 的各个参数表
参数 | 含义 |
---|---|
-F |
指定打包后只生成一个exe格式的文件 |
-D |
–onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项) |
-c |
–console, –nowindowed 使用控制台,无界面(默认) |
-w |
–windowed, –noconsole 使用窗口,无控制台 |
-p |
添加搜索路径,让其找到对应的库。 |
-i |
改变生成程序的icon图标 |
关于有图片音频文件时打包成 exe 的补充:
对于程序里引用了图片跟音频的python,打包之后会出现闪退情况,或者打开exe文件失败的情况,这时候只要把程序里的图片引用路径改为绝对路径,并在前面加 r 即可,如下所示:
background_1 = pygame.image.load(r'E:Work_filePython_test
o.jpg').convert()