निम्नलिखित कोड लिनक्स में अजगर 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 है, जिसमें यह पाया गया है कि समस्या से पहले आयात किया जा रहा tkinter
साथ है प्रक्रिया को फोर्क किया गया है, यह को f
के अंदर आयात करके तय किया जा सकता है, और यह समस्या लिनक्स में होती है लेकिन सोलारिस नहीं होती है।
क्या किसी को पता है कि वास्तव में इस समस्या का कारण क्या है, और यदि यह जानबूझकर है या अंत में तय किया जाएगा? स्थानीय रूप से हर जगह tkinter
आयात करने के अलावा कोई कामकाज है, मुझे इसकी आवश्यकता है (जो खराब शैली की तरह लगता है)? क्या किसी अन्य मॉड्यूल में मल्टीप्रोसेसिंग के साथ समान समस्याएं हैं?
-0। आप समस्या जानते हैं। आप जानते हैं कि एक बग रिपोर्ट दायर की गई है। आप कामकाज जानते हैं। एकमात्र अन्य प्रमुख सवाल यह है कि "क्या किसी अन्य मॉड्यूल में मल्टीप्रोसेसिंग के साथ समान समस्याएं हैं?", जो थोड़ा सा खुला समाप्त होता है। –
@ स्टेवेन रूंबल्स्की: मुझे समस्या नहीं पता - मुझे नहीं पता कि टिंकर क्या कर रहा है जो यहां काम करने में विफल रहता है, या यह मंच-निर्भर क्यों है। बग रिपोर्ट 3 साल पहले दायर की गई थी, और इस बात का कोई संकेत नहीं है कि कोई जानता है कि (या वास्तव में कौन सी स्थितियों में) ऐसा होता है या इसे कैसे ठीक किया जाए। हो सकता है कि मेरा आखिरी प्रश्न पढ़ना चाहिए "क्या कोई अन्य मानक लाइब्रेरी मॉड्यूल है जिसे किसी प्रक्रिया को फोर्क करने से पहले आयात नहीं किया जा सकता", जो थोड़ा अधिक विशिष्ट है। – James