以下代码在Linux的Python 3.2.2中无法执行,程序会一直卡在那里不动:
我找到的关于这个问题唯一的信息是问题 5527,其中指出问题在于在进程被fork之前导入
究竟是什么原因导致了这个问题?这是一个bug吗?除了在需要的每个地方本地导入
import tkinter
from multiprocessing import Process
def f():
root = tkinter.Tk()
label = tkinter.Label(root)
label.pack()
root.mainloop()
p = Process(target=f)
p.start()
我找到的关于这个问题唯一的信息是问题 5527,其中指出问题在于在进程被fork之前导入
tkinter
,并且可以通过在函数f
中导入tkinter
来解决,而且该问题只在Linux上出现,而不是Solaris。究竟是什么原因导致了这个问题?这是一个bug吗?除了在需要的每个地方本地导入
tkinter
以外,是否有其他解决方法(这不是很Pythonic)?还有其他模块是否存在类似于多进程的问题?