次のコードは、Linux の python 3.2.2 で何もせずにハングします。
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()
この問題について私が見つけた唯一の情報はissue 5527で、問題はプロセスが fork される前にインポートされたことにあり、関数内にtkinter
インポートすることで修正でき、問題は Linux で発生することが指摘されていますが、ソラリスではありません。tkinter
f
この問題の原因を正確に知っている人はいますか?それが意図的なものなのか、最終的に修正されるのか? 必要な場所ならどこでもローカルにインポートする以外に回避策はありますかtkinter
(スタイルが悪いようです)。マルチプロセッシングで同様の問題が発生する他のモジュールはありますか?