把 Python 脚本打包成可以直接双击运行的 .exe 文件 【转】

  因为最近要用到 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 pypiwin32pip3 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_file\Python_test\no.jpg').convert()

 

  

posted @ 2019-05-27 15:47  白菜没我白  阅读(6540)  评论(0编辑  收藏  举报