मुझे खेद है कि मैं एक सरल उदाहरण के साथ त्रुटि को पुन: पेश नहीं कर सकता, और मेरा कोड पोस्ट करने के लिए बहुत जटिल है। अगर मैं नियमित अजगर के बजाय आईपीथॉन शेल में कार्यक्रम चलाता हूं, तो चीजें अच्छी तरह से काम करती हैं।
मैंने इस समस्या पर कुछ पिछले नोट देखे। वे सभी एक वर्ग फ़ंक्शन के भीतर परिभाषित फ़ंक्शन को कॉल करने के लिए पूल का उपयोग करने के कारण हुए थे। लेकिन मेरे लिए ऐसा नहीं है।
Exception in thread Thread-3:
Traceback (most recent call last):
File "/usr/lib64/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/lib64/python2.7/threading.py", line 505, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib64/python2.7/multiprocessing/pool.py", line 313, in _handle_tasks
put(task)
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
किसी भी सहायता के लिए धन्यवाद।
अद्यतन : फ़ंक्शन मैं अचार मॉड्यूल के शीर्ष स्तर पर परिभाषित किया गया है। हालांकि यह एक फ़ंक्शन को कॉल करता है जिसमें एक नेस्टेड फ़ंक्शन होता है। यानी, f()
कॉल g()
कॉल h()
एक नेस्टेड समारोह है जो i()
, और मैं बोल रहा हूँ pool.apply_async(f)
। f()
, g()
, h()
सभी शीर्ष स्तर पर परिभाषित कर रहे हैं। मैंने इस पैटर्न के साथ सरल उदाहरण की कोशिश की और यह हालांकि काम करता है।
dill
औरpathos
। हालाँकि, मैं vtkobjects के साथ काम करते समय किसी भी समाधान के साथ नहीं हूं :( किसी ने समानांतर प्रसंस्करण vtkPolyData में अजगर कोड चलाने में कामयाबी हासिल की है?