首页 > 解决方案 > 使用 os.system 运行 python 脚本的 Python GUI 导致主 GUI“无响应”

问题描述

StackOverflow 社区。我正在编写一个 python GUI 来监视 OSX 环境中另一个程序的数据,并且有一次我决定单击一个按钮来打开我编写的另一个 python 脚本。它确实有效,但一旦我单击按钮,它也会导致主 GUI 程序出现滞后问题。对于滞后问题,我的意思是 GUI 窗口是“无响应”,我需要强制退出。我用来运行新脚本的方法是,

def create_html():
os.system('python realtime.py')

我的程序没有多类结构,只有简单的画布和框架。我想知道这是否也是导致我的程序运行缓慢的问题。

标签: pythonperformanceuser-interfacelag

解决方案


问题是您正在使用os.system,这是一个阻塞调用。python realtime.py在完成执行并返回之前,它不会将控制权返回给您的主代码。

您需要使用不会阻塞程序其余部分的调用,例如subprocess.Popen.

您还可以查看此 QA以获取更多信息


推荐阅读