使用 os 模块输入 cmd 命令后 Tkinter 没有响应

Tkinter Not responding after entering cmd command with os module

我有一个 运行 功能的按钮。这个函数应该 运行 2 cmd 命令,第一个 cmd 命令工作正常,但 tkinter GUI 在第二个命令可以执行之前冻结。有办法解决这个问题吗?

使用 pycharm 和 python 3.9

def runspotdl():
    os.system(f'cmd /k "my command here"')
    os.system(f'cmd /k "my second command here"')

使用 /k cmd 执行然后保持打开状态。

/c cmd 执行并关闭。

因此,您的第一个 cmd window 在执行时执行,然后等到您关闭它,就在您关闭它时,您的第二个 cmd 命令将在新的 cmd window 中执行。 此外,一直以来,您的 Tkinter window 将冻结,因为它的程序对于 cmd windows 仍然是 运行。它会在您退出第二个 cmd window.

时解冻

所以,我的建议是,如果您没有使用第一个命令在 cmd window 中显示任何内容,那么对第一个命令使用 /c,对第二个命令使用 /k (让它保持打开状态直到你想退出。或者只是在每个命令中添加 /c 在它们执行后关闭 cmd windows 。) 例如

def runspotdl():
    os.system(f'cmd /c "1st cmd command"')
    os.system(f'cmd /k "2nd cmd command"')