Raspbian Jessie中的Python脚本在从空闲启动时运行良好,但在通过shell/batch文件从终端启动时自动关闭
我希望另一个用户能够运行我的Python应用程序,所以我制作了一个shell/batch文件来启动它。它设置了shebang头、chmod并在终端中正确启动,但是当它不应该关闭时,它关闭(脚本按术语运行)而没有警告 当我在IDLE中打开Python文件并选择Run->runmodule时,它将无限期地运行 我认为这可能是因为当运行中的python脚本在空闲时遇到错误或异常时,异常/错误会显示为红色,以便可以对其进行调试。我的假设是,终端消失得如此之快的原因是,当它遇到它不知道如何处理的事情时,它会立即退出 让我感到困惑的是,在许多、许多小时的调试过程中,我觉得我已经成功地编写出了脚本可能遇到的任何错误。Raspbian Jessie中的Python脚本在从空闲启动时运行良好,但在通过shell/batch文件从终端启动时自动关闭,python,python-2.7,tkinter,terminal,raspbian,Python,Python 2.7,Tkinter,Terminal,Raspbian,我希望另一个用户能够运行我的Python应用程序,所以我制作了一个shell/batch文件来启动它。它设置了shebang头、chmod并在终端中正确启动,但是当它不应该关闭时,它关闭(脚本按术语运行)而没有警告 当我在IDLE中打开Python文件并选择Run->runmodule时,它将无限期地运行 我认为这可能是因为当运行中的python脚本在空闲时遇到错误或异常时,异常/错误会显示为红色,以便可以对其进行调试。我的假设是,终端消失得如此之快的原因是,当它遇到它不知道如何处理的事情时,它
我觉得这是真的,因为程序可以连续运行几天,从空闲启动时没有问题。我怀疑你的mainloop调用有问题,但我们需要看到一个
IDLE
使用tkinter
所以它执行mainloop()
运行IDLE
和你的代码。但通常情况下,您必须将mainloop()
添加到代码中才能运行它。我使用的是win.update\u idletasks()
和win.update()
而不是mainloop()
,因为我希望能够刷新StringVars和其他GUI组件,而不必离开按钮单击调用的方法。调用mainloop()。