将Python程序打包为exe(可执行程序)

前言:

大家都知道,Python 是一种脚本语言,也就是解释型的语言,需要解释器来进行解释以后才可以执行,而 Python 源代码需要在 Python 虚拟机上面运行,但是我们做好的程序,不可能给用户使用的时候还让他安装一个 Python 环境,所以今天我们讲解如何将 Python 程序打包为 exe 可执行文件。

本篇文章主要是基于 Python 的第三方库 pyinstaller 进行的。使用 pyinstaller 打包 Python 项目,相对于 C 和 C# 项目的打包要简单很多。


项目地址

  • GitHub 地址
  • PyInstaller 手册

安装 PyInstaller

安装 PyInstaller 的简便方法是使用 pip

1
pip install pyinstaller

升级到新版本

1
pip install --upgrade pyinstaller

安装当前的开发版本

1
pip install https://github.com/pyinstaller/pyinstaller/tarball/develop

⚠️注意:一般直接 pip 安装第一项即可,后两项只是参考!

验证安装

pyinstaller 现在,在所有平台上,命令都应该存在于执行路径上。要验证这一点,请输入命令

1
pyinstaller --version

结果应类似于 3.n 发行版和 3.n.dev0-xxxxxx 开发分支

环境要求

PyInstaller 可以在 Windows 8 或更高版本中运行(Windows 7 也可以使用,但不受支持)。它可以创建图形化窗口应用程序(不需要命令窗口的应用程序)。

PyInstaller 在 Windows 系统中需要两个 Python 模块。它需要 Windows 的 PyWin32 pypiwin32 Python 扩展。如果您使用 pip 安装 PyInstaller,并且尚未安装 PyWin32,则会自动安装 pypiwin32。 PyInstaller 还需要 pefile软件包。

Python 版本:建议使用 Python3.x

参数介绍

官网参数详细介绍,在使用 pyinstaller 打包 Python 项目的时候,需要指定一些参数,详细介绍请参考官网。也可以通过 pyinstaller -h 命令查看 pyinstaller 的参数使用介绍。

常规选项

-h, –help 查看该模块的帮助信息
-F, -onefile 产生单个的可执行文件
-D, –onedir 产生一个目录(包含多个文件)作为可执行程序
-a, –ascii 不包含 Unicode 字符集支持
-d, –debug 产生 debug 版本的可执行文件
-w, –windowed, –noconsolc 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
-c, –nowindowed, –console 指定使用命令行窗口运行程序(仅对 Windows 有效)
-o DIR, –out=DIR 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件
-p DIR, –path=DIR 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径
-n NAME, –name=NAME 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字

常用参数

-D, –onedir 创建包含可执行文件的单文件夹包 (默认)
-F, –onefile 创建一个可执行文件(exe)
-c, –console, –nowindowed 使用控制台窗口 (默认)
-w, –windowed, –noconsole 使用窗口显示
-i 设置打包 exe 的图标,默认使用的是 Python 的图标

单个 py 文件打包

运行以下代码进行打包

1
pyinstaller -F -i calc.ico calc.py

参数解释:-i calc.ico 表示程序图标及图标地址;calc.py 表示你的 Python 程序文件名

打包结束会后,会在项目目录下发现多了 distbuild 两个目录文件和一个 *.spec 的文件。

打开 dist 目录,可以发现下面多了一个 dcalc.exe 的可执行文件,双击运行即可!

⚠️注意:如果原本的程序中使用到了相应的资源,需要复制到 dist 目录下,否则程序会无法运行!

如果不想显示控制台,打包的时候可以加上 -w 参数,例如:

1
pyinstaller -F -w -i calc.ico calc.py

此时打包生成的 exe 程序执行时不会出现控制台窗口。

图标制作

  1. 阿里巴巴矢量图标库下载适合的图标
  2. 上传下载的图标到 ICO 图标生成,在线生成 ico 图标,然后下载下来即可!