python记录之程序打包成可执行文件exe

记录下使用pyinstaller将.py打包成可执行文件(.exe)过程

1、安装pyinstaller

pip install pyinstaller

2、执行打包操作

打开cmd进入.py存放的目录下 ,执行以下命令:

pyinstaller -F  File.py

pyinstaller -F  FileList.spec

File.py要打包的文件

打包过程中可能遇到的报错(尤其使用到pandas时)

RecursionError: maximum recursion depth exceeded while calling a Python object

如下图:

python记录之程序打包成可执行文件exe

解决方法(网上搜索,验证有效):

执行pyinstaller -F  File.py 之后在File.py 的同级目录下会生成一个File.spec的文件

用记事本或其它工具打开File.spec文件,在头部添加

import sys

sys.setrecursionlimit(1000000)

python记录之程序打包成可执行文件exe

文件保存后,再执行pyinstaller -F  File.spec 即可

3、打包后无法运行

闪退,程序用到了配置文件或运行需要读取其它文件

解决方法:将所需文件放在.exe同级目录下即可

报错:ModelNotFoundError:NO module named 'xxxxxx'

python记录之程序打包成可执行文件exe

解决方法:

记下NO module named后面的内容

然后打开File.spec文件,在hiddenimports=[],中添加刚才记录的内容,如有多个,用逗号隔开

然后再执行pyinstaller -F  File.spec 即可

 

python记录之程序打包成可执行文件exe

问题:程序中如使用了pandas模块,生成的程序.exe会很大(几百兆),

目前还没有找到比较好的方法