打包分发Python程序¶
运行 Python 程序,需要部署 Python 执行环境并安装依赖包,操作繁琐。
借助 PyInstaller 等工具,可以将 Python 程序和 Python 环境一起打包成可执行程序, 极大改善部署体验。 本文以一个简单的实验程序,演示打包方法。
实验程序¶
我们编写一个程序,并用它演示如何打包 Python 程序。 程序通过 ntplib 查询 NTP 服务器 并输出相关信息:
先使用 virtualenv 初始化一个 Python 隔离环境进行实验:
$ virtualenv env
验证 Python 隔离环境功能是否正常:
$ env/bin/python --version
Python 3.7.1
接着执行 pip 工具安装依赖包:
$ env/bin/pip install ntplib==0.3.3
可以通过 python 命令执行程序了:
$ env/bin/python checktime.py
Server: 119.160.254.155
Offset: 0.004868745803833008
Time: 2019-02-01 19:34:17
PyInstaller¶
PyInstaller 工具用于将 Python 应用及其依赖打包成一个 单文件程序 。支持系统包括:
使用之前,需进行安装:
$ env/bin/pip install pyinstaller==3.4
执行 pyinstaller 命令, checktime.py 是待打包脚本, -F 表示打包成单文件程序:
$ env/bin/pyinstaller -F checktime.py
如无意外,在 dist 目录下可以找到打包后的程序。可以直接执行:
$ dist/checktime
Server: 42.204.179.159
Offset: -0.024485349655151367
Time: 2019-02-01 10:51:08
将以上程序拷贝到其他同类型系统上,也可以 直接执行 。 这样一来,其他系统无需安装 Python 环境,也无需安装依赖库即可执行 Python 应用,非常便捷!