您的“关注”和“点赞”,是信任,是认可,是支持,是动力…
如意见相佐,可留言。
本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新。
文章目录
1 PyInstaller 模块概述
PyInstaller 可以将 Python 应用程序及其所有依赖项冻结(打包)成独立可执行程序,用户无需安装 Python 解释器或任何模块即可运行打包的应用程序,这个程序可以被分发在 Windows,GNU / Linux,Mac OS X,FreeBSD,Solaris 和 AIX 平台上运行。
注意:PyInstaller 它不是交叉编译器:要制作 Windows 应用程序,请在 Windows 中运行 PyInstaller。要创建 GNU / Linux 应用程序,请在 GNU / Linux 等环境中运行它 。
PyInstaller 当前最新版本为:PyInstaller 3.6。本文演示也是基于这个版本。
PyInstaller 3.6 支持 Python 2.7 和 Python 3.5+,取消对 2.7 之前的 Python 的支持,并正确捆绑了主要的 Python 软件包,例如 numpy,PyQt,Django,wxPython 等。
2 PyInstaller 模块的安装
2.1 PyInstaller 安装概述
PyInstaller 就是一个普通的 Python 软件包。
- 第一种安装方式:从 PyPi 下载档案文件。
- 第二种安装方式:使用
pip
可以更简单的安装 PyInstaller 。
以第二种方式为例,如下所示:
pip install pyinstaller
或升级到新版本:
pip install --upgrade pyinstaller
要安装当前的开发版本,请使用:
pip install https://github.com/pyinstaller/pyinstaller/tarball/develop
2.2 在 Windows 中安装 PyInstaller
安装 PyInstaller 模块与安装其他 Python 模块一样,使用 pip
命令安装即可。
在命令行窗口(win + R 快捷键打开“运行”窗口,输入cmd
,按确认)输入如下命令:
pip install pyinstaller
运行上面命令,就会开始安装 PyInstaller ,安装需要时间,等一会儿会有如下提示出现,表示安装成功了。
Successfully installed pyinstaller-x.x.x
建议:使用 pip
在线安装的方式来安装 PyInstaller 模块,不要使用离线包的方式来安装,因为 PyInstaller 模块需要依赖其他模块,pip 在安装 PyInstaller 模块时会安装它的依赖模块(自动安装 altgraph, future, pefile, pywin32-ctypes, pyinstaller)。
在 Windows 中安装 PyInstaller,先决条件是 PyWin32 或更新的 pypiwin32。 使用 pip 安装 PyInstaller 时会自动安装 pywin32。
PyWin32 或 pypiwin32 是提供了 Python 在 Windows 下运行的环境,提供了很多访问 windows 的API,安装其中之一即可。
如果想要手动安装,也可以输入以下命令:
pip install pywin32
或
pip install pypiwin32
2.3 在 Mac OS X 中安装 PyInstaller
Mac OS X 10.8 随附有 Apple 预先安装的 Python 2.7。但是,Python 2.7 已停产,并且 PyInstaller 不再支持它,而且 PyQt,Numpy,Matplotlib,Scipy 之类的主要软件包也已不再支持 Python 2.7。因此,建议使用 MacPorts 或Homebrew 安装它们。
2.4 验证 PyInstaller 是否安装成功
可以输入命令进行查看,如下所示:
查看安装的 PyInstaller 版本号,命令如下所示,
pyinstaller --version 或 pyinstaller -v
查看已经安装的所有模块,命令如下所示,
pip list
3 PyInstaller 模块的使用
使用语法格式如下所示:
pyinstaller [选项] Pyhton脚本
对以上格式说明,
-
[选项]
:可选参数,可有可无。常用选项(部分选项)如下表所示,选项 意义 -h 查看该模块的帮助信息,会罗列出所有选项以供查询,例如 pyinstaller -h
-v 查看该模块的版本信息,会显示该模块的版本号,例如 pyinstaller -v
-F 生成单个的可执行文件,例如 pyinstaller -F Python源文件
-D 创建一个包含可执行文件的单文件夹捆绑包(默认),例如 pyinstaller -D Python源文件
-n 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字 -d 产生 debug 版本的可执行文件 -w 指定程序运行时不显示命令行窗口(仅对 Windows 有效) -c 指定使用命令行窗口运行程序(仅对 Windows 有效) -o 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件 -
Pyhton脚本
:指的是xx.py
文件。
举例如下所示:
创建 windowdemo.py
Python 脚本文件,内容如下所示:
from tkinter import *
win = Tk()
win.title('我的第一个窗口') # 设置窗口名
sw = win.winfo_screenwidth() # 拿到屏幕宽度
sh = win.winfo_screenheight() # 拿到屏幕高度
ww = 320 # 定义窗口宽度
wh = 260 # 定义窗口高度
x = (sw-ww) / 2
y = (sh-wh) / 2
win.geometry("%dx%d+%d+%d" % (ww, wh, x, y))
win.mainloop() # 进入消息循环
运行上面代码,会出现一个窗口,如下图所示:
通过命令行工具进入 windowdemo.py
Python 脚本文件所在目录,在该目录下执行如下命令:
pyinstaller -F -w windowdemo.py
如下图所示:
以上命令中,-F
选项表示指定生成单个的可执行程序,-w
选项表示指定程序运行时不显示命令行窗口。
以上命令运行完成后,所在目录会生成一个build
目录,包括所有的编译脚本;一个 dist
目录,包含整个项目的打包结果;还会有一个windowdemo.spec
文件,这是一个规格文件,PyInstaller 通过执行 spec 文件的内容来构建应用程序。如下图所示:
在dist
目录下会生成一个windowdemo.exe
文件,就是我们需要的可直接运行的程序了,双击便可运行,如下图所示:
双击执行程序,如下图所示: