将Python脚本打包成可执行文件可以避免依赖Python运行环境,便于脚本运行,而且可以闭源代码。
工具
PyInstaller
原理
PyInstaller打包Python脚本的过程并不是编译源码,而是把Python脚本和解释器以及依赖包全部打包成一个可执行文件,打包后的文件通常体积较大,代码运行效率降低,但是不再需要依赖Python运行环境。注意打包文件不可移植,需要在相应平台上生成对应的可执行文件,如: Windows–>exe文件,Linux–>elf文件。
安装
方法1:pip下载安装 pip install pyinstaller
方法2:源码下载安装,链接: https://github.com/pyinstaller/pyinstaller,命令: python3 setup.py install
可通过 pyinstaller --version 检查是否安装成功
使用
命令格式:pyinstaller [options] <scriptname>
options 常用参数:
- -F, --onefile: 创建单个可执行文件,移动时只需要移动单个可执行文件
- -D, --onedir: 默认参数,产生一个目录 (包含多个依赖文件) 作为可执行程序,移动时需要移动整个目录
- -i <icon>, --icon <icon>: 使用icon作为可执行文件的图标
- –clean: 打包之前,删除之前打包的目录
打包后生成目录文件:
- __pycache__: 缓存目录,存储pyc格式的编译后的程序,包括依赖包的环境,可以直接执行
- build: 打包过程的目录,存储了打包过程的相关日志和配置
- dist: 打包结果目录,对应生成的可执行文件
- <scriptname>.spec: 打包配置文件,可以编辑以通过其他方式打包
例如在Windows上打包测试脚本 test.py: pyinstaller -F test.py --clean ,运行后生成目录如下所示,可执行文件在dist目录下:
|