2012-05-30 13 views
5

मैं अजगर कोड है कि इस तरह दिखता है का एक सा है:ढूँढना अपवाद

procs = cpu_count()-1 
if serial or procs == 1: 
    results = map(do_experiment, experiments) 
else: 
    pool = Pool(processes=procs)  
    results = pool.map(do_experiment, experiments) 

जब मैं serial ध्वज सेट ठीक चलाता है, लेकिन यह निम्न त्रुटि जब Pool प्रयोग किया जाता है देता है। जब मैं do_experiment से कुछ प्रिंट करने का प्रयास करता हूं तो कुछ भी दिखाई नहीं देता है, इसलिए मैं वहां कोशिश/पकड़ नहीं सकता और एक स्टैक ट्रेस प्रिंट नहीं कर सकता।

Exception in thread Thread-2: 
Traceback (most recent call last): 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 530, in __bootstrap_inner 
    self.run() 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 483, in run 
    self.__target(*self.__args, **self.__kwargs) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 285, in _handle_tasks 
    put(task) 
TypeError: 'NoneType' object is not callable 

डीबगिंग आगे बढ़ने का एक अच्छा तरीका क्या है?

+0

यह शायद कोई फर्क नहीं पड़ता, लेकिन 'cpu_count()' – mgilson

+0

से वापसी मूल्य क्या है। सिस्टम पर निर्भर करता है। 2 अपने लैपटॉप पर। 8 सर्वर पर। किसी भी तरह से; अगर 'पूल.मैप' का उपयोग स्थिरता में किया जाता है 'मानचित्र' का, चीजें तोड़ती हैं। – noio

उत्तर

13

मैं अपने गिट इतिहास में वापस चला गया जब तक कि मुझे कोई प्रतिबद्धता नहीं मिली जहां चीजें अभी भी काम कर रही थीं।

मैं अपने कोड के लिए एक वर्ग है कि dict फैली ताकि कुंजी के साथ एक . (ताकि dict.foodict["foo"]। Multiprocessing की जगह में पहुँचा जा सकता है इस के लिए कृपया नहीं लिया कहा, का उपयोग कर एक साधारण dict समस्या हल हो।

+1

एक नोट के रूप में, आपको वास्तव में ऐसा करने की ज़रूरत नहीं है। सामान्य कक्षा का उपयोग करें और फिर 'स्वयं .__ dict __। अद्यतन करें () ' – Voo

+1

वाह , संयोग से मैं एक ही वही जोड़ जोड़ रहा हूँ कक्षा के टी ने मेरी मल्टीप्रोसेसिंग को भी तोड़ दिया .. – Ryan

+0

यह सबसे अप्रत्याशित लगता है। कोई विचार यह है कि इस बग का मूल कारण क्या हो सकता है? क्या यह पाइथन दुभाषिया में एक बग है? –

संबंधित मुद्दे