AttributeError: объект '_MainProcess' не имеет атрибута '_exiting'

Я получил

AttributeError: '_MainProcess' object has no attribute '_exiting'

из приложения Python. К сожалению, этот код должен запускать Python 2.5 и, следовательно, модуль обработки , ныне известный как multiprocessing . Я создавал процесс с очередью и помещал элемент в очередь из основного процесса. Заглянув в код processing.queue , я вижу, что запущен поток подачи. Затем этот питающий поток проверит currentProcess () ._ exiting , но currentProcess () оценивается как _MainProcess , который не имеет указанного атрибута, как можно увидеть в Модуль processing.process . Как это решить? Это ошибка в обработке ? Если да, могу я просто исправить его, используя currentProcess () ._ exiting = False ?

Минимальный пример:

#!/usr/bin/python

import processing
import processing.queue

class Worker(processing.Process):
    def __init__(self):
        processing.Process.__init__(self)
        self.queue = processing.queue.Queue()

    def run(self):
        element = self.queue.get()
        print element

if __name__ == '__main__':
    w = Worker()
    w.start()
    # To trigger the problem, any non-pickleable object is to be passed here.
    w.queue.put(lambda x: 1)
    w.join()
12
задан Helmut Grohne 25 February 2011 в 17:43
поделиться