第三节 黑框的调试作用以及如何去掉黑框
所谓黑框,其实就是命令行窗口。当我们成功打包并运行程序后,黑框中会显示程序输出内容。但是如果程序运行不成功,那黑框中就会显示报错信息,这个对我们非常重要。而有些时候我们程序显示的是一个GUI界面,所以不想要黑框,不然用户会觉得不友好。
在本小节中,笔者会详细介绍如何利用黑框来调试,以及如何去掉黑框。
1. 在黑框中查看报错信息
笔者现在使用Python中自带的tkinter模块编写了一个简单的GUI界面,并设置了窗口的图标:
-
import tkinter
-
-
win = tkinter.Tk()
-
win.iconbitmap(
'./icon.ico')
# 设置窗口图标
-
win.mainloop()
图标文件下载地址:https://www.easyicon.net/download/ico/1197675/72/
下载来之后我们将它放到项目路径下,命令为icon.ico:
我们接着用pyinstaller -F belle.py命令进行打包,打包成功进入dist文件并双击可执行文件,此时会发现命令行窗口中出现了报错信息:
从报错信息中我们得知程序无法找到icon.ico这个文件,那是因为这个图标文件并没有在可执行文件的路径下。我们可以把图标文件拷贝到dist文件夹中,然后再次双击就可以成功运行程序了:
当程序运行出错的时候,黑框虽然会显示报错信息,但是可能会一闪而过。读者可以抓时机截图查看报错信息,或者可以新建一个命令行窗口,然后把可执行文件拖入该窗口中:
如果一开始已经在编辑器中100%确保代码运行正确,没有问题,但在打包后程序运行报错的话,请读者也要100%相信自己的代码。报错的信息通常不会跟代码本身有关,可能是资源路径跟可执行文件对应不上,或者是模块找不到之类的,我们只不过需要进行一些适当的修改来适应打包后的情况。
2. 如何去掉黑框
去掉黑框其实非常简单,我们只需要加上-w命令即可:
pyinstaller -F -w belle.py
-w和-F命令可以互换位置:
pyinstaller -w -F belle.py
笔者现将belle.py中的代码改成如下样子:
-
import tkinter
-
-
# 创建主窗口
-
win = tkinter.Tk()
-
-
# 创建标签控件和按钮控件
-
label = tkinter.Label(win, text=
'Hello World')
-
btn = tkinter.Button(win, text=
'Button')
-
-
# 添加到主窗口中
-
label.pack()
-
btn.pack()
-
-
# 进入消息主循环
-
win.mainloop()
该程序运行后截图如下,会发现黑框已经不存在了:
总之,在打包任何自带界面的程序时,笔者建议先保留黑框,等确保打包和运行都没问题后,再加上-w命令重新打包下(除非你特意要将黑框留下)。
转载:https://blog.csdn.net/La_vie_est_belle/article/details/93725024?utm_source=column_blog_push_525