由于最近要用到 Python 脚本,因此本身学习了一下,顺便学习如何把它打包成 .exe 可执行文件,达到双击运行的效果,网上找了资料,保存下来学习用,原文出处:https://baijiahao.baidu.com/s?id=1606400855559470971&wfr=spider&for=pcpython
你们都知道,Python是一种脚本语言,也就是解释型的语言,须要解释器来进行解释之后才能够执行,而Python源代码须要在Python虚拟机上面运行,可是咱们作好的程序,不可能给用户使用的时候还让他安装一个Python环境,因此今天咱们讲解如何将Python程序打包为exe可执行文件。提示: 如下的教程都是再有Python环境的基础上的,若是没有安装,请先参考:Python安装以及环境变量配置api
1、安装pyinsatlleride
打开命令行窗口,输入以下指令:学习
pip3 install pyinstaller测试
而后静待pyinstaller自动安装好spa
此外还要安装好 win32api ,能够用命令 pip install pypiwin32 或 pip3 install pypiwin32 或 python -m pip install pypiwin32 直接下载安装,若是没有安装好这个,生成的exe文件的时候,会报错,是没法生成 .exe 文件的,此外还要注意win32api的版本要跟你的Python编译器的版本一致,否则安装 win32api 时会找不到 python 注册表命令行
2、使用pyinstaller打包Python程序code
①在你的Python程序文件夹上(不点进去)按住shift而且右键,在弹出的选项中点击"在此处打开命令行窗口"或者“在此处打开PowerShell窗口” 或者先进入命令行窗口,而后使用cd指令进入程序文件夹blog
②输入如下指令,开始打包教程
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_file\Python_test\no.jpg').convert()