前言
记录一些关于 Python 打包为可执行文件相关内容
Pyinstaller
pyinstaller 是一个将 Python 代码打包成可执行文件的工具,它可以将 Python 代码打包成 Windows、Linux、MacOS 等平台的可执行文件。
大多数情况下,Pyinstaller 可以很好地处理 Python 代码的打包工作。网上关于 Pyinstaller 的教程也很多,这里就不再赘述了,只做简单的使用介绍,具体的使用方法可以参考官方文档。
版本兼容
Pyinstaller 支持大多数 Python 版本,包括 Python 2.7 和 Python 3.8+
安装
|
|
使用
|
|
-F
参数表示打包成单个可执行文件,xxx.py
是你要打包的 python 脚本。
注意
- 打包的时候需要保证你的 python 脚本中的依赖包已经安装,否则打包后的可执行文件可能无法运行。
Nuitka
Nuitka 是另一个将 Python 代码编译成可执行文件的工具,它可以将 Python 代码编译成 Windows、Linux、MacOS 等平台的可执行文件。Nuitka 是我个人比较喜欢的一个工具,它的打包后的可执行文件体积比 Pyinstaller 要小很多,而且由于经过编译,运行速度也会更快。
版本兼容
Nuitka 能够完全兼容 Python 2.6、 2.7 以及 3.4 以后的版本。
安装
|
|
使用
nuitka 的使用方法也很简单,只需要一个命令就可以将你的 python 脚本打包成可执行文件。当然,Nuitka 也支持更多的参数,可以根据自己的需求来使用。关于更多的参数可以参考官方文档。
|
|
--standalone
参数表示打包成单个可执行文件,xxx.py
是你要打包的 python 脚本。
注意
Nuitka 会将你的 python 脚本编译成 C 语言代码,然后再编译成可执行文件,所以编译过程可能会比较慢,但是编译后的可执行文件体积会比 Pyinstaller 要小很多。并且,你需要一个 C 语言编译器来编译 C 代码,所以在使用 Nuitka 之前,你需要安装一个 C 语言编译器。当然现在的 Nuitka 会在编译过程中自动下载编译器。
Pystand
Pystand是一个 Python 独立部署环境。Python 3.5 以后,Windows 下面都有一个 Embedded Python 的独立 Python 运行环境,这个 PyStand 就是配合 Embedded Python 使用的。
版本兼容
Pystand 主要以 3.8 发行,其余的版本可以自己编译。仅支持 Windows
使用
以下内容来自 Pystand 使用说明
- 用 CMake 生成 PyStand.exe (或者到 Release 里下个现成的)。
- 下载 Python Embedded 版本,放到 PyStand.exe 所在目录的 runtime 子目录内。
- 注意 Python Embedded 如果是 32 位,PyStand 配置 CMake 时也需要指明 -A Win32。
- 在 PyStand.exe 所在目录创建 Python 源代码 PyStand.int。
- 双击 PyStand.exe 就会运行 PyStand.int 里的代码。
- 可以编译成命令行版方便调试,CMake 的时候加 -DPYSTAND_CONSOLE=ON 即可。
安装依赖
用一个同 Embedded Python 相同版本的 Python 做一个 venv,然后 pip 独立安装好模块后将 site-packages 内对应的包复制到 PyStand.exe 的 site-packages 下直接使用。
cx_Freeze
cx_Freeze 是另一个将 Python 代码打包成可执行文件的工具,它可以将 Python 代码打包成 Windows、Linux、MacOS 等平台的可执行文件。
版本兼容
cx_Freeze 支持 Python 3.9 以及更高版本。
安装
|
|
使用
有三种不同的方法来使用 cx_Freeze,此处只介绍最简单的一种。其他两种方法可以参考官方文档。
|
|
--target-dir dist
表示打包后的可执行文件会放在 dist 文件夹中,xxx.py
是你要打包的 python 脚本。
注意
Windows 上的 Python 3.9-3.13 需要Microsoft Visual C++ Redistributable,并且由于安装方式的原因,cx_Freeze 默认不会自动复制它。
Py2exe
py2exe 是一个将 Python 代码打包成 Windows 平台可执行文件的工具。
版本兼容
py2exe 支持大多数 Python 版本
安装
|
|
使用
笔者并没有使用过 py2exe,所以这里只是简单介绍一下使用方法,具体的使用方法可以参考官方文档
|
|
setup.py
是一个配置文件,用来配置打包的一些参数。
注意
py2exe 只支持 Windows 平台,如果你要打包的是 Linux 或 MacOS 的可执行文件,那么 py2exe 就不适用了。
总结
本人只用过 Pyinstaller、Nuitka、PyStand 这三种打包方式,其他的打包方式相关说明是本人阅读官方文档所得。