¿Por qué tkinter no juega bien con multiprocesamiento?
El siguiente código se cuelga sin hacer nada en Python 3.2.2 en Linux:
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()
La única información que he encontrado sobre este problema esnúmero 5527, en la que se nota que el problema es contkinter
ser importado antes de que el proceso se bifurque, que se puede arreglar importandotkinter
dentro de la funciónf
, y que el problema se produce en Linux pero no en Solaris.
¿Alguien sabe exactamente qué está causando este problema y si es intencional o eventualmente se solucionará? ¿Hay alguna otra solución que no sea para importartkinter
Localmente en todas partes lo necesito (lo que parece mal estilo)? ¿Algún otro módulo tiene problemas similares con el multiprocesamiento?