使用pyinstaller打包多个python文件

一.需要打包的文件

这次需要打包的项目为Tkinter目录下的test3目录下的所有python文件,其中main.py为主文件。

使用pyinstaller打包多个python文件

 

二.打包流程

1.生成主函数对应的spec文件

命令:在test3路径下使用:pyi-makespec main.py

使用pyinstaller打包多个python文件

如下图已经生成main.spec文件。

使用pyinstaller打包多个python文件

 

2.修改spec文件:加入需要打包的所有python文件,同时确保以下两项包含该项目的路径

使用pyinstaller打包多个python文件

 

3.对spec文件进行pyinstaller安装

命令:pyinstaller main.spec

使用pyinstaller打包多个python文件

若显示如下所示则证明打包成功。

使用pyinstaller打包多个python文件

此时项目下多了两个目录,进入dist目录,找到dist路径下后缀名为exe的文件。这里为dist下目录main下的main.exe。

使用pyinstaller打包多个python文件

使用pyinstaller打包多个python文件

 

4.测试是否能运行

通过powershell进入到项目路劲下执行exe文件,观察是否报错。

项目路径>  .\main.exe

使用pyinstaller打包多个python文件

 

发现缺少pkg_resources.py2_warn模块,则我们在main.spec的hiddenimports项进行加入,如下图:

使用pyinstaller打包多个python文件

 

退出powershell。先删除之前生成的dist和build目录。重新通过pyinstaller生成exe文件:pyinstaller main.spec

使用pyinstaller打包多个python文件

运行完成后,同样在powershell运行exe文件,查看情况:

使用pyinstaller打包多个python文件

本次出现的错误是缺少Tkinter模块,而这个原因是我们项目的上一级目录名称是Tkinter,在我们python文件中使用同级目录下的文件会诸如import Tkinter.test3.xxx。如下图:

使用pyinstaller打包多个python文件

修改方法:直接使用test3下的相对路径即可,即修改为如下图:

使用pyinstaller打包多个python文件

 

然后类似上一步,删除掉dist和build目录,重新生成exe文件,并在powershell运行,这次便能成功运行。

使用pyinstaller打包多个python文件