一、安装步骤
1. 电脑是win10,安装的Python3.6
2. 在Scripts文件夹下执行pip install pyinstaller, 安装成功后下载pyinstaller安装包,解压之后放到安装Anaconda的Lib\site-packages下。(参考https://blog.csdn.net/bjxdbz/article/details/73467859)
二、打包步骤
(参考https://blog.csdn.net/rxwsj13/article/details/78114065):
1. 安装好后,回退进入到Scripts文件夹下,将要打包的文件夹复制到Scripts文件夹下:
2. 将PyInstaller安装文件夹复制到打包文件夹下,路径如图:
3. 将要转化的.py文件放到MyTest文件夹下
4. 进入到MyTest文件夹下,使用语句“pyinstaller -F -w test1.py”
5. 在MyTest文件夹下生成两个文件夹,dist中就是需要的.exe文件。
三、打包异常处理
(参考https://blog.csdn.net/Sagittarius_Warrior/article/details/78457824)
异常1:Maximum recursion depth exceeded
解决方法:
1)生成spec文件(如果该文件已存在可以跳过这步)
pyi -makespec --onefile test1.py
2)在spec文件顶部增加如下代码,修改“recursion limit”
importsys
sys.setrecursionlimit(5000)
3)以这个新的spec文件为依据,输入如下打包命令:
pyinstaller test1.spec
四、执行exe异常处理
错误:failed to execute script XXX
解决方法:
1)打包命令参数用:pyinstaller -F -c -d test1.py,以-c命令行窗口方式打开exe,-d为debug模式
2)执行时根据命令行窗口提示找到代码中出错的位置进行修改,笔者打包的是tkinter的GUI工程,用到了matplotlib,主要是import模块的使用问题,加上模块前缀如:func--->modulename.func等,修改完代码错误后,再次打包就执行OK了。