pyinstaller使用技巧


前言

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
2
    return module_code_object.co_names[co_names_index] 
IndexError: tuple index out of range

解决办法:

1
2
3
4
5
# 卸载已安装的pyinstaller
pip uninstall pyinstaller

# 安装develop分支的pyinstaller
pip install https://github.com/pyinstaller/pyinstaller/tarball/develop

3. 打包命令

-D参数:生成one-folder的程序(默认), 生成结果是一个目录,各种第三方依赖、资源和exe同时存储在该目录
-F参数:生成one-file的程序,生成结果是一个exe文件,所有的第三方依赖、资源和代码均被打包进该exe内
–specpath参数:默认在当前目录中生成.spec文件

3.1 单文件打包

​ 安装命令:

1
pyinstaller -F py脚本

打包后可在dist中找到生成的可执行软件

3.2 多文件项目打包

…. 待续


文章作者: 王海飞
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 王海飞 !
  目录