Python GUI 在评估期间挂起
因此,我正在使用 Tkinter 在 Python 中构建一个 GUI,它将用于在运行时加载列出许多 python 脚本的文本文件。然后,脚本将被执行并返回一个数字,指示它们是否成功(返回代码不会随 sys.exit 返回,脚本文件将有一个将被调用并返回 1 或 0 的函数)。在运行时,我使用 exec 将脚本文件作为模块导入,然后使用 eval 调用模块内的函数。
def runtest(test):
exec 'import ' + test
func=test+'.'+test+'()'
return eval(func)
问题是,整个 UI 在评估过程中挂起,但我宁愿让它在后台运行。如果有人知道如何实现这一点,我将不胜感激。
So, I'm building a GUI in Python using Tkinter which will be used to, during runtime, load a textfile listing a number of python scripts. The scripts will then be executed and return a number indicating whether they were successful or not (returncode will not be returned with sys.exit, script files will have a function which will be called and return a 1 or a 0). During runtime I use exec to import the script files as modules and then call the function within the module with eval.
def runtest(test):
exec 'import ' + test
func=test+'.'+test+'()'
return eval(func)
Problem is, the whole UI hangs during the evaluation, but I would rather have it running in the background. Would be much appreciated if anyone know of a way to make this happen.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可能有两种方法。
使用Python多处理库http://docs.python.org/library/multiprocessing.html< /a>
Python 线。
由于 Python 的 GIL,选项 1 比选项 2 更好。
来自多处理导入过程
There could be 2 ways.
Use Python multiprocessing library http://docs.python.org/library/multiprocessing.html
Python thread.
Option 1 is good compared to Option 2 due to Python's GIL.
from multiprocessing import Process