如何解决Pyinstaller打包运行提示AttributeError
Pyinstaller是一款能将Python脚本打包成EXE可执行文件的工具。与其他两款类似的工具py2exe和cxfreeze相比,小编认为Pyinstaller比较简单粗暴。然而,很多人在使用Pyinstaller进行打包时会遇到一个问题:在python解释器中运行没有任何问题的脚本,但用Pyinstaller打包之后,无法运行。那么为什么会出现这个问题呢?该如何解决呢?接下来,小编将手把手教大家如何解决这个问题。
问题原因分析
首先,让我们看一下小编写的一个python脚本,功能相当简单,用tkinter模块创建窗口,然后调用showinfo显示一个提示框。在解释器上运行是完全没有任何问题的。
接下来,我们尝试使用Pyinstaller进行打包。在命令提示符中cd到脚本所在目录,然后运行Pyinstaller -F 脚本名。通常情况下,如果脚本能正常运行,打包也应该能成功。
然而,当我们找到dist目录并双击运行程序时,发现程序只是闪过而已。此时,遇到这种一闪而过的问题,我们无法看到命令行提示的错误信息,应该怎么办呢?其实很简单,我们只需要在命令行下去运行它就行了。在dist目录下运行生成的exe文件,此时可以看到错误提示:
AttributeError: 'module' object has no attribute 'messagebox'
解决方法
现在让我们回顾一下我们的代码。有没有只声明了tkinter主模块,但没有声明其下的messagebox子模块呢?所以,遇到这样的问题,即"object has no attribute"提示,我们应该去看看代码。
声明相关的模块即可。在代码中加入import 即可。
现在重新运行经过Pyinstaller -F打包后的程序,问题肯定得到解决了。
至此,问题解决完毕。希望本文对大家有所帮助。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。