Python3打包脚本和配置文件,生成单个可执行程序
- 环境:CentOS 7.9
- Python 环境:Python 3.9.5
Python 脚本经常由于环境变化、依赖包没装、Python 版本不同等原因,在不同的机器上无法正常运行。pyinstaller 工具提供了方法把 Python 脚本、依赖包以及执行环境打包,甚至生成一个单独的可执行程序,让该程序可以在其他主机上正常运行,而不必关心其有没有安装 Python 环境及其依赖包。
下面简单介绍 pyinstaller 的使用。
一、编译 Python 环境
make
make install
二、安装 pyinstaller
./pip3 install --upgrade pyinstaller
三、打包 Python 脚本
-F 参数是打包成一个可执行文件,不加 -F 则生成一个目录,里面包含可执行文件以及依赖的动态库。
执行成功后,会在当前目录下生成一个 build 和 dist 的目录,其中 dist 目录里面就是生成的可执行程序。
四、打包配置文件
./pyinstaller --add-data /opt/config1.yaml:./ --add-data /opt/config2.yaml:./ /opt/main.py -F
--add-data 参数的格式是 src:des,src 指定源文件路径,des 是打包后的路径。
item_dict = yaml.safe_load(file_data)
除了指定 --add-data 参数外,也可以手动修改 spec 文件,pyinstaller 执行之后,会在当前目录生成一个 main.spec, main 是 python 脚本的名称,手动修改该文件,在 datas 部分加入配置文件,如下:
datas=[('/opt/config1.yaml','.'),('/opt/config2.yaml','.')]
./pyinstaller main.spec
这种方式与直接指定 --add-data 参数效果是一样的。
文章评论