前言
Pyinstaller介绍
Pyinstaller是将python编译成可执行软件的工具。在linux环境中可通过pyinstall命令将可执行脚本编译为可执行二进制文件,在windows环境中可编译为可执行exe软件。
1. 虚拟环境
在开发中常使用到虚拟环境,当我们需要将依赖于某个虚拟环境项目中的py脚本打包成可执行软件时,可能会出现pyinstaller无法识别当前虚拟环境和全局环境的情况,将导致无法找到虚拟环境中的依赖包。
如下所示,虚拟环境无法识别的情况:
1 | not find path: setuptools-39.1.0-py 3.6.egg # 出现系统找不到指定的文件 |
如果出现以上情况,很大可能是pyinstaller再进行安装时,无法识别到当前虚拟环境。
解决办法:
移除掉通过 python -m venv 命令创建的虚拟环境,改用virtualenv -p 的命令创建虚拟环境
命令:
1 | virtualenv -p python3的安装路径 虚拟环境名称 |
###2. 安装
注意:如果直接安装pyinstaller,并通过pyinstaller -F py脚本,可能会出现以下错误:
1 | return module_code_object.co_names[co_names_index] |
解决办法:
1 | # 卸载已安装的pyinstaller |
3. 打包命令
-D参数:生成one-folder的程序(默认), 生成结果是一个目录,各种第三方依赖、资源和exe同时存储在该目录
-F参数:生成one-file的程序,生成结果是一个exe文件,所有的第三方依赖、资源和代码均被打包进该exe内
–specpath参数:默认在当前目录中生成.spec文件
3.1 单文件打包
安装命令:
1 | pyinstaller -F py脚本 |
打包后可在dist中找到生成的可执行软件
3.2 多文件项目打包
…. 待续