likes
comments
collection
share

pyinstaller的使用解决no module named xxx(failed to execute script test)导出生成exe

作者站长头像
站长
· 阅读数 43

pyinstaller的基础使用,将python文件导出生成exe

pyinstaller解决no module named xxx(failed to execute script test)

问题先上图,本人自己写了一个操作mysql的界面系统,但是打包中出现了很多的问题,打包好的exe程序运行时报错如下,从网上搜索了很多方法都不管用,很多文章答案同出一辙没有实际操作性,就算解决了问题也只是运气原因,本文将记录本人遇见问题到解决问题的整个思路。

pyinstaller的使用解决no module named xxx(failed to execute script test)导出生成exe

首先简单介绍下pyinstaller的基础使用,这里我使用如下命令安装:

pip3 install pyinstaller

pyinstaller -F *.py  #打包成一个exe文件
 
pyinstaller -F -w *.py  #打包好的exe文件,启动时不显示cmd命令行
 
pyinstaller -F -w *.py -p dir #导入路径

起初我单纯的以为是环境没配好等问题,网上搜索解决方案也是五花八门,一一尝试都没有作用,于是开始自行摸索,首先是打包好运行时会闪退,我们将-w命令去掉,闪退的一瞬间截图命令行所出现的报错内容,可得知是mysqldb包没有搜索到。

pyinstaller的使用解决no module named xxx(failed to execute script test)导出生成exe

之后从这个问题角度开始深入,是什么原因导致了mysqldb包没有导入,那只有一个可能,pyinstaller作为一个打包模块,并不会十分智能去加载所有模组,通过查看pyinstaller官方给出的各参数可以发现,其中有导入路径的参数,动了动小脑袋瓜子想到可行性,于时我便尝试找到mysqldb的路径,添加在-p命令之后。

参数详情见官网: pyinstaller.readthedocs.io/en/v3.3.1/u…

pyinstaller的使用解决no module named xxx(failed to execute script test)导出生成exe

可惜可惜还是没成功,但是此时此刻我又想到了另一种可能性,在python中操作mysql的模组有很多,或许是mysqldb自己的原因导致了失败,于时我换成了pymysql模组,再次尝试,终于功夫不负有心人,我成功了!

在此查看pymysql模组所在目录

pyinstaller的使用解决no module named xxx(failed to execute script test)导出生成exe

pyinstaller -F -w main.py -p C:\Users\22798\AppData\Local\Programs\Python\Python37\Lib\site-packages

pyinstaller的使用解决no module named xxx(failed to execute script test)导出生成exe

打包所生成的exe文件自动存放在项目文件夹中的dist目录下

pyinstaller的使用解决no module named xxx(failed to execute script test)导出生成exe

双击成功运行,成功实现pyinstaller打包

pyinstaller的使用解决no module named xxx(failed to execute script test)导出生成exe

转载自:https://juejin.cn/post/6972510297441599518
评论
请登录