मैं लिनक्स पर पायथन के साथ विकसित करता हूं और कभी भी विंडोज़ के साथ इस तरह की समस्या को कभी नहीं देखा है। मैं कंप्यूटेशंस को गति देने के लिए multiprocessing
लाइब्रेरी का उपयोग कर रहा हूं, जो लिनक्स पर मेरे लिए बहुत अच्छा काम करता है।विंडोज़ पर मल्टीप्रोसेसिंग
Windows पर, तथापि, चीजों के रूप में सुचारू रूप से संचालित नहीं है:
* [INFO] Parsing 1 file using 2 threads
Traceback (most recent call last):
File "main.py", line 170, in <module>
master = ParsingMaster(parser, list(input_file), output_list, threads=num_threads)
Traceback (most recent call last):
File "main.py", line 39, in __init__
File "<string>", line 1, in <module>
self.input_process.start()
File "C:\Python26\lib\multiprocessing\forking.py", line 342, in main
File "C:\Python26\lib\multiprocessing\process.py", line 104, in start
self._popen = Popen(self)
self = load(from_parent)
File "C:\Python26\lib\multiprocessing\forking.py", line 239, in __init__
File "C:\Python26\lib\pickle.py", line 1370, in load
dump(process_obj, to_child, HIGHEST_PROTOCOL)
File "C:\Python26\lib\multiprocessing\forking.py", line 162, in dump
ForkingPickler(file, protocol).dump(obj)
File "C:\Python26\lib\pickle.py", line 224, in dump
return Unpickler(file).load()
self.save(obj)
File "C:\Python26\lib\pickle.py", line 858, in load
File "C:\Python26\lib\pickle.py", line 331, in save
self.save_reduce(obj=obj, *rv)
File "C:\Python26\lib\pickle.py", line 419, in save_reduce
dispatch[key](self)
File "C:\Python26\lib\pickle.py", line 880, in load_eof
save(state)
File "C:\Python26\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
r aise EOFError
File "C:\Python26\lib\pickle.py", line 649, in save_dict
EOFError
self._batch_setitems(obj.iteritems())
File "C:\Python26\lib\pickle.py", line 681, in _batch_setitems
save(v)
File "C:\Python26\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Python26\lib\multiprocessing\forking.py", line 40, in dispatcher
self.save_reduce(obj=obj, *rv)
File "C:\Python26\lib\pickle.py", line 401, in save_reduce
save(args)
File "C:\Python26\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Python26\lib\pickle.py", line 548, in save_tuple
save(element)
File "C:\Python26\lib\pickle.py", line 331, in save
self.save_reduce(obj=obj, *rv)
File "C:\Python26\lib\pickle.py", line 419, in save_reduce
save(state)
File "C:\Python26\lib\pickle.py", line 286, in save
f(self, obj) # Call unbound method with explicit self
File "C:\Python26\lib\pickle.py", line 649, in save_dict
self._batch_setitems(obj.iteritems())
File "C:\Python26\lib\pickle.py", line 681, in _batch_setitems
save(v)
File "C:\Python26\lib\pickle.py", line 306, in save
rv = reduce(self.proto)
File "C:\Python26\lib\multiprocessing\managers.py", line 458, in __reduce__
return type(self).from_address, \
AttributeError: type object 'SyncManager' has no attribute 'from_address'
मैं विंडोज 7 पर दोनों अजगर 2.6 और 2.7 पर परीक्षण कर रहा हूँ और अधिक से अधिक यह एक ही त्रुटि मिलती है। क्या किसी को पता है इसका क्या अर्थ है?
क्या आपने [प्लेटफ़ॉर्म-विशिष्ट दस्तावेज़] (http://docs.python.org/library/multiprocessing.html#windows) पढ़ा था, विशेष रूप से पहला प्रतिबंध? –
धन्यवाद, मैंने अभी किया। मैं केवल संपूर्ण वर्ग के लिए तर्क के रूप में सूचियों का उपयोग कर रहा हूं, इसलिए कोई भी पिकलिंग त्रुटियां नहीं होनी चाहिए। मैं या तो प्रक्रिया subclassing नहीं कर रहा हूँ। – Blender